import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Service to manage the selection state of rows in a table.
 * Allows tracking of selected rows and managing selection for individual and multiple rows.
 */
export declare class EuiTableSelectableRowService {
    /**
     * BehaviorSubject containing the selected rows.
     */
    selectedRows$: BehaviorSubject<any[]>;
    /**
     * BehaviorSubject containing the state of whether all rows are selected.
     */
    isAllRowsSelected$: BehaviorSubject<boolean>;
    lastSelectedRow: any;
    private rows;
    private isAllRowsSelected;
    private propId;
    /**
     * Sets the property name used to identify rows as unique.
     */
    setPropId(value: string): void;
    /**
     * Gets the current property name used to identify rows.
     */
    getPropId(): string;
    /**
     * Selects a row.
     *
     * @param row Row to select.
     */
    addSelectedRow(row: any): void;
    /**
     * Selects a set of rows.
     *
     * @param rows Rows to select.
     */
    addSelectedRows(rows: any[]): void;
    /**
     * Unselects a row.
     *
     * @param row Row to unselect.
     */
    removeSelectedRow(row: any): void;
    /**
     * Registers a row as selectable.
     *
     * @param row Row to register.
     */
    addRow(row: any): void;
    /**
     * Registers a set of rows as selectable.
     *
     * @param rows Set of rows to register.
     */
    addRows(rows: any[]): void;
    /**
     * Unregisters all rows.
     */
    resetRows(): void;
    /**
     * Selects a set of rows.
     *
     * @param rows Rows to select.
     */
    selectRows(rows: any[]): void;
    /**
     * Select all rows.
     */
    selectAllRows(): void;
    /**
     * Unselect all rows.
     */
    unselectAllRows(): void;
    /**
     * Unselect all rows.
     */
    getRows(): any[];
    /**
     * Gets the last selected row.
     *
     * @returns The last selected row.
     */
    getLastSelectedRow(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTableSelectableRowService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<EuiTableSelectableRowService>;
}
//# sourceMappingURL=eui-table-selectable-row.service.d.ts.map