import * as React from "react";
import { BoxOptions, BoxHTMLProps } from "../Box/Box";
import { CompositeItemOptions, CompositeItemHTMLProps } from "../Composite/CompositeItem";
import { unstable_ComboboxStateReturn } from "./ComboboxState";
export declare const unstable_useComboboxItem: {
    (options?: unstable_ComboboxItemOptions | undefined, htmlProps?: unstable_ComboboxItemHTMLProps | undefined, unstable_ignoreUseOptions?: boolean | undefined): unstable_ComboboxItemHTMLProps;
    unstable_propsAreEqual: (prev: BoxOptions & import("..").RoleOptions & {
        disabled?: boolean | undefined;
        focusable?: boolean | undefined;
    } & {
        unstable_clickOnEnter?: boolean | undefined;
        unstable_clickOnSpace?: boolean | undefined;
    } & Pick<Partial<import("..").unstable_IdStateReturn>, "baseId" | "unstable_idCountRef"> & {
        id?: string | undefined;
    } & Pick<Partial<import("..").CompositeStateReturn>, "orientation" | "baseId" | "unstable_virtual" | "unstable_moves" | "unstable_hasActiveWidget"> & Pick<import("..").CompositeStateReturn, "down" | "up" | "next" | "first" | "last" | "currentId" | "items" | "registerItem" | "unregisterItem" | "previous" | "setCurrentId"> & Pick<Partial<unstable_ComboboxStateReturn>, "hide" | "visible" | "inputValue" | "currentValue"> & Pick<unstable_ComboboxStateReturn, "registerItem" | "setInputValue"> & {
        /**
         * Item's value that will be used to fill input value and filter `matches`
         * based on the input value. You can omit this for items that perform
         * actions other than filling a form. For example, items may open a dialog.
         */
        value?: string | undefined;
    } & React.HTMLAttributes<any> & React.RefAttributes<any> & {
        wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
    } & {
        wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
    } & {
        disabled?: boolean | undefined;
    }, next: BoxOptions & import("..").RoleOptions & {
        disabled?: boolean | undefined;
        focusable?: boolean | undefined;
    } & {
        unstable_clickOnEnter?: boolean | undefined;
        unstable_clickOnSpace?: boolean | undefined;
    } & Pick<Partial<import("..").unstable_IdStateReturn>, "baseId" | "unstable_idCountRef"> & {
        id?: string | undefined;
    } & Pick<Partial<import("..").CompositeStateReturn>, "orientation" | "baseId" | "unstable_virtual" | "unstable_moves" | "unstable_hasActiveWidget"> & Pick<import("..").CompositeStateReturn, "down" | "up" | "next" | "first" | "last" | "currentId" | "items" | "registerItem" | "unregisterItem" | "previous" | "setCurrentId"> & Pick<Partial<unstable_ComboboxStateReturn>, "hide" | "visible" | "inputValue" | "currentValue"> & Pick<unstable_ComboboxStateReturn, "registerItem" | "setInputValue"> & {
        /**
         * Item's value that will be used to fill input value and filter `matches`
         * based on the input value. You can omit this for items that perform
         * actions other than filling a form. For example, items may open a dialog.
         */
        value?: string | undefined;
    } & React.HTMLAttributes<any> & React.RefAttributes<any> & {
        wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
    } & {
        wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
    } & {
        disabled?: boolean | undefined;
    }) => boolean;
    __keys: readonly any[];
    __useOptions: (options: unstable_ComboboxItemOptions, htmlProps: unstable_ComboboxItemHTMLProps) => unstable_ComboboxItemOptions;
};
export declare const unstable_ComboboxItem: import("reakit-system/ts/createComponent").Component<"span", unstable_ComboboxItemOptions>;
export declare type unstable_ComboboxItemOptions = BoxOptions & CompositeItemOptions & Pick<Partial<unstable_ComboboxStateReturn>, "currentValue" | "inputValue" | "hide" | "visible"> & Pick<unstable_ComboboxStateReturn, "setInputValue" | "registerItem"> & {
    /**
     * Item's value that will be used to fill input value and filter `matches`
     * based on the input value. You can omit this for items that perform
     * actions other than filling a form. For example, items may open a dialog.
     */
    value?: string;
};
export declare type unstable_ComboboxItemHTMLProps = BoxHTMLProps & CompositeItemHTMLProps;
export declare type unstable_ComboboxItemProps = unstable_ComboboxItemOptions & unstable_ComboboxItemHTMLProps;
