import React from 'react';
/**
 * A constrained combobox input can only offer values that are part of the provided list of `items`.
 * The default is an unconstrained. A constrained input should have both a form input that is hidden
 * from the user as well as a user input that will be visible to the user. This hook is in charge of
 * keeping the inputs and the model in sync with each other and working with a browser's
 * autocomplete, form libraries and the model.
 */
export declare const useComboboxInputConstrained: import("@workday/canvas-kit-react/common").BehaviorHook<{
    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>;
        width: number;
    };
    events: {
        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;
}, {
    readonly ref: (instance: HTMLInputElement | null) => void;
    readonly form: "";
    readonly value: null;
    readonly onChange: (event: React.ChangeEvent<HTMLInputElement>) => null;
    readonly name: null;
    readonly disabled: boolean | undefined;
    /**
     * These props should be spread onto the form input.
     */
    readonly formInputProps: {
        readonly disabled: boolean | undefined;
        readonly tabIndex: -1;
        readonly 'aria-hidden': true;
        readonly ref: (instance: HTMLInputElement | null) => void;
        readonly onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
        readonly name: string | undefined;
    };
}>;
//# sourceMappingURL=useComboboxInputConstrained.d.ts.map