import type { JSX } from 'solid-js'; export interface SelectStateProperties { isSelected(value: T): boolean; select(value: T): void; hasSelected(): boolean; isActive(value: T): boolean; hasActive(): boolean; focus(value: T): void; blur(): void; disabled(): boolean; } export interface SingleSelectStateControlledOptions { multiple?: false; toggleable?: boolean; value: T; onChange?: (value?: T) => void; disabled?: boolean; by?: (a: T, b: T) => boolean; } export interface SingleSelectStateUncontrolledOptions { multiple?: false; toggleable?: boolean; defaultValue: T; onChange?: (value?: T) => void; disabled?: boolean; by?: (a: T, b: T) => boolean; } export type SingleSelectStateOptions = SingleSelectStateControlledOptions | SingleSelectStateUncontrolledOptions; export declare function createSingleSelectState(options: SingleSelectStateOptions): SelectStateProperties; export interface MultipleSelectStateControlledOptions { multiple: true; toggleable?: boolean; value: T[]; onChange?: (value: T[]) => void; disabled?: boolean; by?: (a: T, b: T) => boolean; } export interface MultipleSelectStateUncontrolledOptions { multiple: true; toggleable?: boolean; defaultValue: T[]; onChange?: (value: T[]) => void; disabled?: boolean; by?: (a: T, b: T) => boolean; } export type MultipleSelectStateOptions = MultipleSelectStateControlledOptions | MultipleSelectStateUncontrolledOptions; export declare function createMultipleSelectState(options: MultipleSelectStateOptions): SelectStateProperties; export interface SelectStateRenderProps { children?: JSX.Element | ((state: SelectStateProperties) => JSX.Element); } export interface SelectStateProviderProps extends SelectStateRenderProps { state: SelectStateProperties; } export declare function SelectStateProvider(props: SelectStateProviderProps): JSX.Element; export declare function useSelectState(): SelectStateProperties; export declare function SelectStateChild(props: SelectStateRenderProps): JSX.Element; //# sourceMappingURL=create-select-state.d.ts.map