import { ReactNode } from 'react'; import { AnyType, ItemId } from '../../Items'; export type OnChangeHandler = (value: T) => void; export type SelectionSingleValueType = ItemId; export type SelectionSingleState = { /** Начальное состояние */ defaultValue?: ItemId; /** Controlled состояние */ value?: ItemId; /** Controlled обработчик измения состояния */ onChange?: OnChangeHandler; /** Режим выбора */ mode: 'single'; }; export type SelectionSingleProps = { setValue?(value: AnyType): void; /** Режим выбора single */ isSelectionSingle: true; /** Режим выбора multi */ isSelectionMultiple: false; } & SelectionSingleState; export type SelectionMultipleState = { /** Начальное состояние */ defaultValue?: ItemId[]; /** Controlled состояние */ value?: ItemId[]; /** Controlled обработчик измения состояния */ onChange?: OnChangeHandler; /** Режим выбора */ mode: 'multiple'; }; export type SelectionMultipleProps = { setValue?(value: AnyType): void; /** Режим выбора single */ isSelectionSingle: false; /** Режим выбора multi */ isSelectionMultiple: true; } & SelectionMultipleState; type SelectionNoneProps = { mode?: 'none'; value?: undefined; onChange?: undefined; setValue?: undefined; defaultValue?: undefined; isSelectionSingle?: undefined; isSelectionMultiple?: undefined; }; type SelectionContextType = Omit | Omit | Omit; export type SelectionState = { selection?: SelectionSingleState | SelectionMultipleState; }; export declare const SelectionContext: import("react").Context; export declare function isSelectionMultipleProps(props: AnyType): props is SelectionMultipleProps; export declare function isSelectionSingleProps(props: AnyType): props is SelectionSingleProps; type Child = { children: ReactNode; }; type SelectionProviderProps = { /** Начальное состояние */ defaultValue?: AnyType; /** Controlled состояние */ value?: AnyType; /** Controlled обработчик измения состояния */ onChange?: OnChangeHandler; /** Режим выбора */ mode?: 'multiple' | 'single' | 'none'; }; export declare function SelectionProvider({ children, ...props }: SelectionProviderProps & Child): import("react/jsx-runtime").JSX.Element; export declare function useSelectionContext(): SelectionContextType; export {};