import { EventEmitter } from '../../stencil.core';
import { SelectChangeEvent } from '../../types/types';
import { NativeValidationStrategy } from '../../utils/native-validation-strategy';
export declare class TypeAhead {
    private input;
    private optionList;
    private optionListListener;
    private overlay;
    element: HTMLElement;
    activeOption: HTMLAnjOptionElement;
    expanded: boolean;
    query: string;
    /**
     * Is the select disabled
     */
    disabled: boolean;
    /**
     * Prop to display for a selected item
     */
    display: string;
    /**
     * The select id
     */
    readonly inputId: string;
    /**
     * Whether the control is valid
     */
    invalid: boolean;
    invalidChanged(newVal: any, oldVal: any): void;
    /**
     * The name of the select
     */
    name: string;
    /**
     * Value of the input placeholder
     */
    placeholder: string;
    /**
     * If true, the user cannot modify the value. Defaults to `false`.
     */
    readonly: boolean;
    /**
     * If true, the user must fill in a value before submitting a form.
     */
    required: boolean;
    /**
     * If true, the typeahead with look like a filter but still have a dropdown.
     */
    search: boolean;
    /**
     * @internal
     * The validation strategy to use
     */
    validationStrategy: NativeValidationStrategy;
    /**
     * the value of the select
     */
    value?: any | null;
    valueChanged(): void;
    /**
     * Emitted when the value has changed.
     */
    anjChange: EventEmitter<SelectChangeEvent>;
    /**
     * Emitted when invalid status changes.
     */
    anjInvalid: EventEmitter<any>;
    /**
     * Emitted when query changes
     */
    anjQuery: EventEmitter<any>;
    disconnectedCallback(): void;
    onInputDidLoad(event: CustomEvent): void;
    onFocus(): Promise<void>;
    onBlur(): Promise<boolean>;
    onSelect(event: CustomEvent): Promise<void>;
    onValidChange(event: CustomEvent): void;
    /**
     * Checks the native element validity use native validators
     */
    checkValidity(): Promise<boolean>;
    private onKeyDown;
    private onChange;
    private setInputValue;
    private setQuery;
    private ariaActive;
    private bindOptionList;
    private unbindOptionList;
    private bindOverlay;
    render(): any;
}
