import { Key, Keyed } from '@synnaxlabs/x';
import { PropsWithChildren, ReactElement } from 'react';
import { UseSelectProps } from './useSelect';
interface SelectContextValue<K extends Key = Key> {
    selected: K[];
}
interface SelectUtilContextValue<K extends Key = Key> {
    onSelect: (key: K) => void;
    clear: () => void;
    getSelected: () => K[];
}
export type SelectorProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>> = PropsWithChildren<UseSelectProps<K, E>>;
export declare const useSelectionContext: <K extends Key = Key>() => SelectContextValue<K>;
export declare const useSelection: <K extends Key = Key>() => K[];
export declare const useSelectionUtils: <K extends Key = Key>() => SelectUtilContextValue<K>;
export declare const Selector: <K extends Key = Key, E extends Keyed<K> = Keyed<K>>(props: SelectorProps<K, E>) => ReactElement;
export {};
//# sourceMappingURL=Selector.d.ts.map