import Component from '@glimmer/component';
import type EuiI18n from '../services/eui-i18n';
interface PromiseProxy<T> extends Promise<T> {
    content: any;
}
interface Select {
    selected: any;
    actions: {
        search: (str: string) => void;
    };
}
export interface EuiComboBoxSignature {
    Element: HTMLDivElement;
    Args: {
        singleSelection?: boolean | {
            asPlainText?: boolean;
        };
        onCreateOption?: (search: string) => boolean | undefined;
        options: any[];
        search?: (term: string, select: Select) => any[] | PromiseProxy<any[]>;
        searchField?: string;
        isInvalid?: boolean;
        fullWidth?: boolean;
        searchMessage?: string;
        searchEnabled?: boolean;
        isClearable?: boolean;
        isLoading?: boolean;
        isDisabled?: boolean;
        readOnly?: boolean;
        searchMessageComponent?: any;
        compressed?: boolean;
        onFocus?: (e: FocusEvent) => void;
        onBlur?: (e: FocusEvent) => void;
        onClose?: (e: Event) => void;
        onOpen?: (e: Event) => void;
        renderInPlace?: boolean;
        customOptionText?: string;
        loadingMessage?: any;
        selectedItemComponent?: any;
        beforeOptionsComponent?: any;
        placeholderComponent?: any;
        afterOptionsComponent?: any;
        searchPlaceholder?: any;
        dropdownClass?: string;
        selectedOptions?: any[];
        onChange: (selected: any[]) => void;
        placeholder?: string;
        extra?: any;
        autoFocus?: boolean;
        defaultHighlighted?: any;
        matchTriggerWidth?: boolean;
        tabindex?: number;
        initiallyOpen?: boolean;
        horizontalPosition?: string;
        verticalPosition?: string;
        destination?: string;
        preventScroll?: boolean;
        noMatchesMessage?: string;
        noMatchesMessageComponent?: any;
    };
    Blocks: {
        default: [any, number, Select];
    };
}
interface Sliceable<T> {
    slice(): T[];
}
export declare const toPlainArray: <T>(collection: Sliceable<T> | T[]) => T[];
export default class EuiComboBoxComponent extends Component<EuiComboBoxSignature> {
    euiI18n: EuiI18n;
    select: any;
    private _resolvedOptions?;
    searchText: string;
    private _searchResult?;
    private _filterResultsCache;
    get loadingMessage(): any;
    get noMatchesMessage(): string;
    get searchMessage(): string;
    get opts(): any;
    get options(): any[];
    get results(): any[];
    scrollTo(option: any, select: {
        results: [];
        uniqueId: string;
    }): void;
    registerAPI(select: Select): void;
    onChange(selected: any[]): any[];
    onCreateOption(): any;
    buildSelection(option: any, select: Select): any;
}
export {};
//# sourceMappingURL=eui-combo-box.d.ts.map