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