import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';

interface ComboboxOption {
    value: string;
    label: string;
    disabled?: boolean;
}
type ComboboxFilter = (option: ComboboxOption, query: string) => boolean;
declare const comboboxTriggerVariants: (props?: ({
    size?: "sm" | "default" | "lg" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const comboboxContentVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const comboboxInputVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const comboboxListVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const comboboxItemVariants: (props?: ({
    selected?: "true" | "false" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const comboboxEmptyVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
interface ComboboxProps {
    value?: string;
    defaultValue?: string;
    onValueChange?: (value: string) => void;
    open?: boolean;
    defaultOpen?: boolean;
    onOpenChange?: (open: boolean) => void;
    options?: ComboboxOption[];
    filter?: ComboboxFilter;
    disabled?: boolean;
    children?: React.ReactNode;
}
/**
 * Combobox -- searchable select with text-based filtering.
 *
 * Compound component:
 *   Combobox > ComboboxTrigger + ComboboxContent
 *   ComboboxContent > ComboboxInput + ComboboxList(ComboboxItem...) + ComboboxEmpty
 *
 * Supports both controlled (value/onValueChange) and uncontrolled (defaultValue) modes.
 * Options can be supplied via the `options` prop (auto-renders items) or by composing
 * <ComboboxItem> children inside <ComboboxList> for full control.
 */
declare function Combobox({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, options, filter, disabled, children, }: ComboboxProps): react_jsx_runtime.JSX.Element;
declare namespace Combobox {
    var displayName: string;
}
interface ComboboxTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    size?: 'sm' | 'default' | 'lg';
    placeholder?: string;
}
declare const ComboboxTrigger: React.ForwardRefExoticComponent<ComboboxTriggerProps & React.RefAttributes<HTMLButtonElement>>;
interface ComboboxContentProps extends React.HTMLAttributes<HTMLDivElement> {
    /** Render content inside a portal (defaults true). */
    portal?: boolean;
}
declare const ComboboxContent: React.ForwardRefExoticComponent<ComboboxContentProps & React.RefAttributes<HTMLDivElement>>;
interface ComboboxInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
}
declare const ComboboxInput: React.ForwardRefExoticComponent<ComboboxInputProps & React.RefAttributes<HTMLInputElement>>;
interface ComboboxListProps extends React.HTMLAttributes<HTMLDivElement> {
}
declare const ComboboxList: React.ForwardRefExoticComponent<ComboboxListProps & React.RefAttributes<HTMLDivElement>>;
interface ComboboxItemProps extends React.HTMLAttributes<HTMLDivElement> {
    value: string;
    disabled?: boolean;
    /** Override the label used for filtering (defaults to children text). */
    label?: string;
}
declare const ComboboxItem: React.ForwardRefExoticComponent<ComboboxItemProps & React.RefAttributes<HTMLDivElement>>;
interface ComboboxEmptyProps extends React.HTMLAttributes<HTMLDivElement> {
}
declare const ComboboxEmpty: React.ForwardRefExoticComponent<ComboboxEmptyProps & React.RefAttributes<HTMLDivElement>>;

export { Combobox, ComboboxContent, type ComboboxContentProps, ComboboxEmpty, type ComboboxEmptyProps, type ComboboxFilter, ComboboxInput, type ComboboxInputProps, ComboboxItem, type ComboboxItemProps, ComboboxList, type ComboboxListProps, type ComboboxOption, type ComboboxProps, ComboboxTrigger, type ComboboxTriggerProps, comboboxContentVariants, comboboxEmptyVariants, comboboxInputVariants, comboboxItemVariants, comboboxListVariants, comboboxTriggerVariants };
