import { SelectHTMLAttributes } from 'react'; import { OptionGroupProps, OptionProps } from './Option.types'; export type StructureNode = { kind: 'option'; id: string; } | { kind: 'group'; id: string; }; interface OptionsContextValue { selectOption: (id: string) => void; deselectOption: (id: string) => void; /** Register an Option. Pass `null` for `groupId` when the Option is rendered at the root (not inside any OptionGroup). */ registerOption: (id: string, groupId: string | null) => void; unregisterOption: (id: string) => void; setOptionProps: (id: string, optionProps: OptionProps) => void; registerGroup: (id: string) => void; unregisterGroup: (id: string) => void; setGroupProps: (id: string, groupProps: OptionGroupProps) => void; } export declare const OptionsProvider: import('react').Provider; export declare const useOptionsContext: () => OptionsContextValue; type ValueType = SelectHTMLAttributes['value']; export declare const useCreateOptionsContext: (value: ValueType, setValue: (value: ValueType) => void, multiple: boolean) => { optionsContext: { setValue: (value: ValueType) => void; registerOption: (id: string, groupId: string | null) => void; unregisterOption: (id: string) => void; setOptionProps: (id: string, optionProps: OptionProps) => void; selectOption: (id: string) => void; deselectOption: (id: string) => void; registerGroup: (id: string) => void; unregisterGroup: (id: string) => void; setGroupProps: (id: string, groupProps: OptionGroupProps) => void; }; selectedOptionsProps: OptionProps[]; optionIds: string[]; optionsProps: Map; deselectOptionValue: (value: ValueType) => void; indexOfLastSelectedOptionRef: import('react').MutableRefObject; getOptionByIndex: (index: number) => OptionProps | undefined; structureIds: StructureNode[]; groupsProps: Map; optionGroupOf: Map; optionIdsByGroup: Map; }; export {};