import { AfterViewInit, ElementRef, SimpleChanges } from '@angular/core';
import { ValidationMessageService } from '../../core/validation-message.service';
import { FormGroupHelper } from '../../shared/form-group.helper';
import { FormControlBase } from '../form-control-base';
import { MenuItem } from '../menu/menu.component';
import * as i0 from "@angular/core";
export declare class SelectComponent extends FormControlBase implements AfterViewInit {
    protected validationMessageService: ValidationMessageService;
    protected formGroupHelper: FormGroupHelper;
    private el;
    /**
     * When the component is not required, defines the label for an additional first option that sets the control to null
     */
    placeholder: string;
    /**
     * When the component is not required, an additional option is added with a value of null.
     */
    options: MenuItem[];
    /**
     * Select a default option automatically during initialization and when options change. Default: `true`.
     * * If formModel has a value
     *   * Make no change if the current value exists in options
     *   * Otherwise, set value to the first option if control is required, or null if optional and emit event
     * * If formModel has no value
     *   * Set value to first option if control is required and emit eventSet to false to manually manage form state.
     *
     * Set to false to opt out of automatic state management
     */
    autoDefault: boolean;
    constructor(validationMessageService: ValidationMessageService, formGroupHelper: FormGroupHelper, el: ElementRef);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    private focus;
    /**
     * If formModel has a value
     *  * Make no change if the current value exists in options
     *  * Otherwise, set value to the first option if control is required, or null if optional and emit event
     * If formModel has no value
     *  * Set value to first option if control is required and emit event
     */
    private onOptionsChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "ec-select", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "autoDefault": { "alias": "autoDefault"; "required": false; }; }, {}, never, never, false, never>;
}
