import type * as React from 'react';
import type { Override } from '../helpers/overrides';
import type { SIZE } from '../input';
export type ComboboxOverrides = {
    Root?: Override;
    InputContainer?: Override;
    Input?: Override;
    Popover?: Override;
    ListBox?: Override;
    ListItem?: Override;
};
export type ComboboxProps<Option = unknown> = {
    autocomplete?: boolean;
    /** If true, adds a clear value icon button to the end of the input container. */
    clearable?: boolean;
    disabled?: boolean;
    error?: boolean;
    listBoxLabel?: string;
    mapOptionToNode?: React.ComponentType<{
        isSelected: boolean;
        option: Option;
    }>;
    mapOptionToString: (a: Option) => string;
    id?: string;
    name?: string;
    inputRef?: React.RefObject<HTMLElement>;
    onBlur?: (a: React.ChangeEvent<HTMLInputElement>) => unknown;
    onChange: (b: string, a: Option | null) => unknown;
    onFocus?: (a: React.ChangeEvent<HTMLInputElement>) => unknown;
    onSubmit?: (a: {
        closeListbox: () => void;
        value: string;
    }) => unknown;
    options: Option[];
    overrides?: ComboboxOverrides;
    positive?: boolean;
    size?: keyof typeof SIZE;
    value: string;
};
