import { ElementRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor, FormControl, FormGroup, NgForm } from '@angular/forms';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { TooltipPosition } from '@angular/material/tooltip';
import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
import { IAutoComplete, IInputVal, Items, IValidatorMessage } from '../constants';
import { IType, ValidatorFunc } from './types';
export declare class ZUIAutocompleteComponent implements ControlValueAccessor {
    #private;
    label: string;
    placeholder: string;
    valueField: string;
    displayField: string;
    hintStart: string;
    hintEnd: string;
    noDataText: string;
    name: string;
    pattern: string;
    max: number;
    min: number;
    maxLength: number;
    minLength: number;
    items: Items;
    tooltipDisabled: boolean;
    tooltipPosition: TooltipPosition;
    set form(val: NgForm | FormGroup);
    /** "outline" | "legacy" | "standard" | "fill", default: "outline"*/
    appearance: MatFormFieldAppearance;
    /** 'on' | 'off' | 'new-password' */
    autocomplete: IAutoComplete;
    /** "text" | "number" | "email" | "textarea" */
    type: IType;
    validatorMessage: IValidatorMessage;
    validatorMessageDefault: IValidatorMessage;
    validatorMessageVal: IValidatorMessage;
    set model(value: any);
    set required(val: IInputVal);
    requiredVal: boolean;
    set delay(val: number);
    /** default "200px", eg: "300px", "400em", "500rem" */
    set width(val: string);
    widthVal: string;
    set noFullWidth(val: IInputVal);
    fullWidth: boolean;
    set validateFirst(val: IInputVal);
    validateFirstVal: boolean;
    set disabled(val: IInputVal);
    disabledVal: boolean;
    freeTextVal: boolean;
    set freeText(val: IInputVal);
    caseSensitiveVal: boolean;
    set caseSensitive(val: IInputVal);
    wrapItemVal: boolean;
    set wrapItem(val: IInputVal);
    disabledValidateVal: boolean;
    set disabledValidate(val: IInputVal);
    set disabledFreeText(val: IInputVal);
    allowFreeText: boolean;
    set validator(validator: ValidatorFunc);
    modelChange: EventEmitter<string>;
    autoComplete: MatAutocompleteTrigger;
    input: ElementRef<HTMLElement>;
    inputControl: FormControl;
    formControl: FormControl;
    filterItems: any[];
    selectedItem: any;
    searchTerm: string;
    loading: boolean;
    focused: boolean;
    first: boolean;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(): void;
    onChange(_: any): void;
    registerOnTouched(): void;
    registerOnChange(fn: () => void): void;
    writeValue(value: string): void;
    get error(): IInputVal;
    get showClearContent(): boolean;
    get showLengthContent(): boolean;
    get tooltipValue(): string;
    get displayFieldType(): string;
    onSelect: (e: MatAutocompleteSelectedEvent) => void;
    onFocus: () => void;
    onBlur: (_e?: Event) => void;
    clear: (e: Event) => void;
}
