import { EventEmitter } from '../../stencil.core';
import { SelectChangeEvent } from '../../types/types';
import { NativeValidationStrategy } from '../../utils/native-validation-strategy';
export declare class Select {
    private inited;
    private nativeInput;
    private optionListListener;
    private overlay;
    private toggle;
    element: HTMLElement;
    expanded: boolean;
    hData: any;
    labels: string[];
    options: HTMLAnjOptionElement[];
    optionList: HTMLAnjOptionListElement;
    /**
     * Is the select disabled
     */
    disabled: boolean;
    /**
     * The select id
     */
    readonly inputId: string;
    /**
     * Whether the control is valid
     */
    invalid: boolean;
    invalidChanged(newVal: any, oldVal: any): void;
    /**
     * Id for the label
     */
    readonly labelId: string;
    /**
     * Does the select support multiple options
     */
    multiple: boolean;
    /**
     * The name of the select
     */
    name: string;
    /**
     * Placeholder text for the select
     */
    placeholder?: string;
    /**
     * If true, the user must fill in a value before submitting a form.
     */
    required: boolean;
    /**
     * @internal
     * The validation strategy to use
     */
    validationStrategy: NativeValidationStrategy;
    /**
     * the value of the select
     */
    value?: any | null;
    valueChanged(value: any): void;
    /**
     * Emitted when the control has been created.
     * @internal
     */
    anjControlDidLoad: EventEmitter<void>;
    /**
     * Fires when the button is blurred
     */
    anjBlur: EventEmitter<void>;
    /**
     * Emitted when the value has changed.
     */
    anjChange: EventEmitter<SelectChangeEvent>;
    /**
     * Fires when the button is focused
     */
    anjFocus: EventEmitter<void>;
    /**
     * Emitted when invalid status changes.
     */
    anjInvalid: EventEmitter<any>;
    componentDidLoad(): Promise<void>;
    disconnectedCallback(): void;
    onOptionsChanged({ detail }: CustomEvent): Promise<void>;
    /**
     * Checks the native element validity use native validators
     */
    checkValidity(): Promise<boolean>;
    private onClick;
    private onBlur;
    private onSelect;
    private getLabels;
    private updateValue;
    private updateMultiValue;
    private updateOptions;
    private valueFromSelected;
    private valueSelected;
    private toggleClasses;
    private bindOptionList;
    private unbindOptionList;
    private bindOverlay;
    render(): any[];
}
