import { VariantProps } from "class-variance-authority";
import { VoidFunc, VoidFuncNoParam } from "../../../../fd-toolbox/functions/internal-getter-setter-functions";
import { multiSelectVariants } from "../Multiselect";
/**
 * Context interface for the {@link MultiSelect} component.
 *
 * Used to manage the state of the multiselect, including the current value,
 * open state, active element, input text, and interaction behavior.
 *
 * Extends {@link https:/cva.style/docs/getting-started/variants VariantProps} of {@link multiSelectVariants}
 */
export interface MultiselectContextProps extends VariantProps<typeof multiSelectVariants> {
    /** Current selected values of the multiselect */
    value: string[];
    /** Event handler called when the selected values change */
    onValueChange: VoidFunc<string>;
    /** A string displaying a description of the current selection. */
    description: string;
    /** Drop-down list opening state */
    open: boolean;
    /** Event handler called when the open state changes */
    onOpenChangeCallback: VoidFunc<boolean>;
    /** The current value of the text input, used to filter the list */
    inputValue: string;
    /** Sets the value of the text input */
    setInputValue: VoidFunc<string>;
    /** Index of the active list item */
    activeIndex: number;
    /** Sets the index of the active list item */
    setActiveIndex: VoidFunc<number>;
    /** Flag indicating whether the component is blocked */
    disabled: boolean;
    /** Resets the current state of the filter and selected values */
    onReset: VoidFuncNoParam;
    /** Component hover flag, used for animations and effects */
    hovered: boolean;
    /** Sets the hover state */
    setHovered: VoidFunc<boolean>;
    /** If set, enables the "Select All" option in the list */
    showSelectAll?: boolean;
    /** Flag indicating whether all elements are selected */
    isAllSelected?: boolean;
}
declare const multiselectContext: import("react").Context<MultiselectContextProps>;
export { multiselectContext as MultiselectContext };
export declare function useMultiselect(): MultiselectContextProps;
