import { SelectState } from './SelectState';
import { CollectionState } from './CollectionState';
import { Snapshot } from './snapshot';
import { TypedEmitter } from '../util';
import { KeyedItem } from '../model';
export interface BulkSelectKeyedItem<T> {
    item: T;
    key: string;
}
export interface BulkSelectStateParams<T> {
    collection: CollectionState<T, any>;
    disableAutoSelectAllCount?: boolean;
    maxSelection?: number;
    scrollToTop: () => unknown;
    useNewSelectAllLogic?: boolean;
}
export declare class BulkSelectState<T> {
    readonly select: SelectState<BulkSelectKeyedItem<T>>;
    readonly events: TypedEmitter<{
        openModal: () => unknown;
        closeModal: () => unknown;
    }>;
    readonly collection: CollectionState<T, any>;
    readonly scrollToTop: () => unknown;
    useNewSelectAllLogic: boolean | undefined;
    disableAutoSelectAllCount?: boolean;
    totalSnapshot: Snapshot<boolean, number>;
    get allSelected(): boolean;
    get hasUnchecked(): boolean;
    constructor(params: Readonly<BulkSelectStateParams<T>>);
    getCollectionItem(key: string): KeyedItem<T> | undefined;
    get selectedIds(): string[];
    get uncheckedIds(): string[];
    get selectedCount(): number;
    get allSelectedItemsFetched(): boolean;
    get selectedValues(): T[];
    get checkedSet(): Set<string>;
    get indeterminateSet(): Set<string>;
    get uncheckedValues(): T[];
    isChecked(key: string): boolean;
    selectAll(): void;
    deselectAll(): void;
    selectOneItem(item: BulkSelectKeyedItem<T>): void;
    selectOne(key: string): void;
    deselectOneItem(keyedItem: BulkSelectKeyedItem<T>): void;
    deselectOne(key: string): void;
    openModal: () => void;
    closeModal: () => void;
    resetToDefaults(): void;
    init(): () => void;
    get selectedKeyedItems(): KeyedItem<T>[];
    get isEmpty(): boolean;
    get uncheckedInCurrentCollection(): T[];
    get selectedCountOrTotal(): number;
    toggleIsSelectAll: () => void;
    toggle(keyedItem: BulkSelectKeyedItem<T>): void;
}
//# sourceMappingURL=BulkSelectState.d.ts.map