import React from 'react';
/**
 * An input model can be used by compound components that need to work with form fields. Some form
 * libraries use `onChange` and `value` to update a form object. Others use `onChange` and `ref` to
 * avoid rerendering. Also autocomplete and test libraries may use the `value` `HTMLInputElement`
 * property. We need to normalize these use cases so subcomponents can have correct data and all
 * use-cases are supported.
 */
export declare const useInputModel: (<TT_Special_Generic>(config?: (Partial<{
    value: string | undefined;
    onFilterChange(event: React.ChangeEvent<HTMLInputElement>): void;
    onChange(event: React.ChangeEvent<HTMLInputElement>): void;
}> & {} & {}) | undefined) => {
    onFilterChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    state: {
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
    };
    events: {};
}) & import("@workday/canvas-kit-react/common").ModelExtras<{
    value: string | undefined;
    onFilterChange(event: React.ChangeEvent<HTMLInputElement>): void;
    onChange(event: React.ChangeEvent<HTMLInputElement>): void;
}, {}, {
    value: string | undefined;
    inputRef: React.RefObject<HTMLInputElement>;
}, {}, {
    onFilterChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    state: {
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
    };
    events: {};
}>;
/**
 * `ComboboxModel` extends the {@link ListModel} and the {@link InputModel}. Selecting items from
 * the menu will dispatch an
 * [input](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event) event on the
 * input which should work with form libraries, automation, and autofill.
 *
 * ```tsx
 * const model = useComboboxModel()
 *
 * <Combobox model={model}>{Combobox child components}</Combobox>
 * ```
 */
export declare const useComboboxModel: (<TT_Special_Generic>(config?: (Partial<{
    shouldVirtualize: boolean;
    mode: "multiple" | "single";
    returnFocusRef: React.RefObject<any> | undefined;
    initialFocusRef: React.RefObject<any> | undefined;
    id: string;
    initialVisibility: import("../../..").Visibility;
    initialSelectedIds: import("../../..").SelectedIds;
    initialUnselectedIds: string[];
    selection: import("../../..").SelectionManager;
    initialCursorId: string;
    columnCount: number;
    navigation: import("../../..").NavigationManager;
    pageSize: number;
    getId: (item: any) => string;
    getTextValue: (item: any) => string;
    nonInteractiveIds: string[];
    orientation: import("../../..").Orientation;
    defaultItemHeight: number;
    items: any[];
    value: string | undefined;
    onFilterChange(event: React.ChangeEvent<HTMLInputElement>): void;
    onChange(event: React.ChangeEvent<HTMLInputElement>): void;
}> & {
    onSetWidth?: ((data: number, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onUpdatePlacement?: ((data: {
        placement: import("@popperjs/core").Placement;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onShow?: ((data: Event | React.SyntheticEvent<Element, Event> | undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onHide?: ((data: Event | React.SyntheticEvent<Element, Event> | undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onSelect?: ((data: {
        id: string;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onSelectAll?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onUnselectAll?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onSetSelectedIds?: ((data: string[] | "all", prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onRemove?: ((data: {
        id: string;
        nextId?: string | undefined;
        event?: Event | React.SyntheticEvent<Element, Event> | undefined;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoTo?: ((data: {
        id: string;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToNext?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToPrevious?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToPreviousRow?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToNextRow?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToFirst?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToLast?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToFirstOfRow?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToLastOfRow?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToNextPage?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onGoToPreviousPage?: ((data: undefined, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onRegisterItem?: ((data: {
        id: string;
        textValue: string;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onUnregisterItem?: ((data: {
        id: string;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
    onUpdateItemHeight?: ((data: {
        value: number;
    }, prevState: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => void) | undefined;
} & {
    shouldSetWidth?: ((data: number, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldUpdatePlacement?: ((data: {
        placement: import("@popperjs/core").Placement;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldShow?: ((data: Event | React.SyntheticEvent<Element, Event> | undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldHide?: ((data: Event | React.SyntheticEvent<Element, Event> | undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldSelect?: ((data: {
        id: string;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldSelectAll?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldUnselectAll?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldSetSelectedIds?: ((data: string[] | "all", state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldRemove?: ((data: {
        id: string;
        nextId?: string | undefined;
        event?: Event | React.SyntheticEvent<Element, Event> | undefined;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoTo?: ((data: {
        id: string;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToNext?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToPrevious?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToPreviousRow?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToNextRow?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToFirst?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToLast?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToFirstOfRow?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToLastOfRow?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToNextPage?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldGoToPreviousPage?: ((data: undefined, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldRegisterItem?: ((data: {
        id: string;
        textValue: string;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldUnregisterItem?: ((data: {
        id: string;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
    shouldUpdateItemHeight?: ((data: {
        value: number;
    }, state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    }) => boolean) | undefined;
}) | undefined) => {
    state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    };
    events: {
        /**
         * Change the width of the menu. Usually this is set to the width of the input.
         */
        setWidth(width: number): void;
        updatePlacement(data: {
            placement: import("@popperjs/core").Placement;
        }): void;
        show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
        hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
        select(data: {
            id: string;
        }): void;
        selectAll(): void;
        unselectAll(): void;
        setSelectedIds(ids: string[] | "all"): void;
        remove(data: {
            id: string;
            nextId?: string | undefined;
            event?: Event | React.SyntheticEvent<Element, Event> | undefined;
        }): void;
        goTo(data: {
            id: string;
        }): void;
        goToNext(): void;
        goToPrevious(): void;
        goToPreviousRow(): void;
        goToNextRow(): void;
        goToFirst(): void;
        goToLast(): void;
        goToFirstOfRow(): void;
        goToLastOfRow(): void;
        goToNextPage(): void;
        goToPreviousPage(): void;
        registerItem(data: {
            id: string;
            textValue: string;
        }): void;
        unregisterItem(data: {
            id: string;
        }): void;
        updateItemHeight(data: {
            value: number;
        }): void;
    };
    onFilterChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    selection: import("../../..").SelectionManager;
    navigation: import("../../..").NavigationManager;
    getId: (item: any) => string;
}) & import("@workday/canvas-kit-react/common").ModelExtras<{
    shouldVirtualize: boolean;
    mode: "multiple" | "single";
    returnFocusRef: React.RefObject<any> | undefined;
    initialFocusRef: React.RefObject<any> | undefined;
    id: string;
    initialVisibility: import("../../..").Visibility;
    initialSelectedIds: import("../../..").SelectedIds;
    initialUnselectedIds: string[];
    selection: import("../../..").SelectionManager;
    initialCursorId: string;
    columnCount: number;
    navigation: import("../../..").NavigationManager;
    pageSize: number;
    getId: (item: any) => string;
    getTextValue: (item: any) => string;
    nonInteractiveIds: string[];
    orientation: import("../../..").Orientation;
    defaultItemHeight: number;
    items: any[];
    value: string | undefined;
    onFilterChange(event: React.ChangeEvent<HTMLInputElement>): void;
    onChange(event: React.ChangeEvent<HTMLInputElement>): void;
}, {}, {
    stackRef: React.RefObject<HTMLDivElement>;
    targetRef: React.RefObject<HTMLButtonElement>;
    initialFocusRef: React.RefObject<any> | undefined;
    returnFocusRef: React.RefObject<any> | undefined;
    placement: import("@popperjs/core").Placement;
    id: string;
    visibility: "hidden" | "visible";
    selectedIds: string[] | "all";
    unselectedIds: string[];
    cursorId: string;
    columnCount: number;
    pageSizeRef: React.MutableRefObject<number>;
    cursorIndexRef: {
        readonly current: number;
    };
    UNSTABLE_virtual: {
        virtualItems: import("../../..").VirtualItem[];
        totalSize: number;
        scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
        scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
        measure: () => void;
    };
    UNSTABLE_defaultItemHeight: number;
    containerRef: React.RefObject<HTMLDivElement>;
    orientation: "horizontal" | "vertical";
    indexRef: React.MutableRefObject<number>;
    nonInteractiveIds: string[];
    isVirtualized: boolean;
    items: import("../../..").Item<any>[];
    mode: "multiple" | "single";
    value: string | undefined;
    inputRef: React.RefObject<HTMLInputElement>;
    /**
     * The width of the combobox input. This is used to make sure the UI renders the menu the same
     * width as the input.
     */
    width: number;
}, {
    /**
     * Change the width of the menu. Usually this is set to the width of the input.
     */
    setWidth(width: number): void;
    updatePlacement(data: {
        placement: import("@popperjs/core").Placement;
    }): void;
    show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
    hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
    select(data: {
        id: string;
    }): void;
    selectAll(): void;
    unselectAll(): void;
    setSelectedIds(ids: string[] | "all"): void;
    remove(data: {
        id: string;
        nextId?: string | undefined;
        event?: Event | React.SyntheticEvent<Element, Event> | undefined;
    }): void;
    goTo(data: {
        id: string;
    }): void;
    goToNext(): void;
    goToPrevious(): void;
    goToPreviousRow(): void;
    goToNextRow(): void;
    goToFirst(): void;
    goToLast(): void;
    goToFirstOfRow(): void;
    goToLastOfRow(): void;
    goToNextPage(): void;
    goToPreviousPage(): void;
    registerItem(data: {
        id: string;
        textValue: string;
    }): void;
    unregisterItem(data: {
        id: string;
    }): void;
    updateItemHeight(data: {
        value: number;
    }): void;
}, {
    state: {
        stackRef: React.RefObject<HTMLDivElement>;
        targetRef: React.RefObject<HTMLButtonElement>;
        initialFocusRef: React.RefObject<any> | undefined;
        returnFocusRef: React.RefObject<any> | undefined;
        placement: import("@popperjs/core").Placement;
        id: string;
        visibility: "hidden" | "visible";
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string;
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: {
            virtualItems: import("../../..").VirtualItem[];
            totalSize: number;
            scrollToOffset: (index: number, options?: import("../../..").ScrollToOffsetOptions | undefined) => void;
            scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
            measure: () => void;
        };
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("../../..").Item<any>[];
        mode: "multiple" | "single";
        value: string | undefined;
        inputRef: React.RefObject<HTMLInputElement>;
        /**
         * The width of the combobox input. This is used to make sure the UI renders the menu the same
         * width as the input.
         */
        width: number;
    };
    events: {
        /**
         * Change the width of the menu. Usually this is set to the width of the input.
         */
        setWidth(width: number): void;
        updatePlacement(data: {
            placement: import("@popperjs/core").Placement;
        }): void;
        show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
        hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
        select(data: {
            id: string;
        }): void;
        selectAll(): void;
        unselectAll(): void;
        setSelectedIds(ids: string[] | "all"): void;
        remove(data: {
            id: string;
            nextId?: string | undefined;
            event?: Event | React.SyntheticEvent<Element, Event> | undefined;
        }): void;
        goTo(data: {
            id: string;
        }): void;
        goToNext(): void;
        goToPrevious(): void;
        goToPreviousRow(): void;
        goToNextRow(): void;
        goToFirst(): void;
        goToLast(): void;
        goToFirstOfRow(): void;
        goToLastOfRow(): void;
        goToNextPage(): void;
        goToPreviousPage(): void;
        registerItem(data: {
            id: string;
            textValue: string;
        }): void;
        unregisterItem(data: {
            id: string;
        }): void;
        updateItemHeight(data: {
            value: number;
        }): void;
    };
    onFilterChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
    selection: import("../../..").SelectionManager;
    navigation: import("../../..").NavigationManager;
    getId: (item: any) => string;
}>;
//# sourceMappingURL=useComboboxModel.d.ts.map