import type { ComboBoxVariants } from "@heroui/styles";
import type { ComponentPropsWithRef, ReactNode } from "react";
import type { ButtonProps } from "react-aria-components";
import { comboBoxVariants } from "@heroui/styles";
import React from "react";
import { ComboBox as ComboBoxPrimitive, Popover as PopoverPrimitive } from "react-aria-components";
type ComboBoxContext = {
    slots?: ReturnType<typeof comboBoxVariants>;
    variant?: "primary" | "secondary";
};
declare const ComboBoxContext: React.Context<ComboBoxContext>;
interface ComboBoxRootProps<T extends object> extends ComponentPropsWithRef<typeof ComboBoxPrimitive<T>>, ComboBoxVariants {
    items?: Iterable<T>;
    /**
     * The variant of the combo box.
     * @default "primary"
     */
    variant?: "primary" | "secondary";
}
declare const ComboBoxRoot: <T extends object = object>({ children, className, fullWidth, menuTrigger, variant, ...props }: ComboBoxRootProps<T>) => import("react/jsx-runtime").JSX.Element;
interface ComboBoxInputGroupProps extends React.HTMLAttributes<HTMLDivElement> {
}
declare const ComboBoxInputGroup: ({ children, className, ...props }: ComboBoxInputGroupProps) => import("react/jsx-runtime").JSX.Element;
interface ComboBoxTriggerProps extends ButtonProps {
    className?: string;
    children?: ReactNode;
}
declare const ComboBoxTrigger: ({ children, className, ...rest }: ComboBoxTriggerProps) => import("react/jsx-runtime").JSX.Element;
interface ComboBoxPopoverProps extends Omit<ComponentPropsWithRef<typeof PopoverPrimitive>, "children"> {
    children: React.ReactNode;
}
declare const ComboBoxPopover: ({ children, className, placement, ...props }: ComboBoxPopoverProps) => import("react/jsx-runtime").JSX.Element;
export { ComboBoxRoot, ComboBoxInputGroup, ComboBoxTrigger, ComboBoxPopover, ComboBoxContext };
export type { ComboBoxRootProps, ComboBoxInputGroupProps, ComboBoxTriggerProps, ComboBoxPopoverProps, };
