import { RowManager, RowId } from '../../lib/row-manager';
import { GridSelectionAPI } from '../use-grid-selection';
export interface GridSelectionAPIOptions<T extends {}> {
    rowManager: RowManager<T>;
    gridSelection: GridSelectionAPI;
    onSelectionChange?: (selectedRows: T[]) => void;
}
export interface GridSelectionAPIResult<T> {
    selectRow: (rowId: RowId, selected?: boolean) => void;
    selectRows: (rowIds: RowId[]) => void;
    selectAll: () => void;
    clearSelection: () => void;
    getSelectedIds: () => RowId[];
    getSelectedRows: () => T[];
    selectedRows: Set<string>;
    isAllSelected: boolean;
    isIndeterminate: boolean;
    handleSelectAll: (checked: boolean) => void;
    handleRowSelectChange: (rowKey: string, checked: boolean) => void;
}
export declare function useGridSelectionAPI<T extends {}>(options: GridSelectionAPIOptions<T>): GridSelectionAPIResult<T>;
//# sourceMappingURL=use-grid-selection-api.d.ts.map