import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Injector, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, Validator } from '@angular/forms';
import { EvoBaseControl } from '../../common/evo-base-control';
import * as i0 from "@angular/core";
export declare enum EvoInputSizes {
    small = "small",
    normal = "normal"
}
export declare enum EvoInputTheme {
    default = "default",
    rounded = "rounded"
}
export declare class EvoInputComponent extends EvoBaseControl implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, OnDestroy, Validator {
    private zone;
    private changeDetector;
    private _renderer;
    private _compositionMode;
    protected injector: Injector;
    autoFocus: boolean;
    dataCp: string;
    icon: string;
    mask: any;
    placeholder: string;
    tooltip: string;
    type: string;
    disabled: boolean;
    loading: boolean;
    prefix: string;
    autocomplete: string;
    inputDebounce: number;
    unmask: boolean | 'typed';
    clearable: boolean;
    maskValidation: boolean;
    blur: EventEmitter<any>;
    inputElement: ElementRef;
    tooltipElement: ElementRef;
    size: EvoInputSizes;
    theme: EvoInputTheme;
    _value: string;
    customTooltipChecked: boolean;
    uiStates: {
        hasCustomTooltip: boolean;
        isTooltipVisible: boolean;
        isFocused: boolean;
    };
    private iMask;
    private tooltipVisibilityTimeout;
    private destroy$;
    /** Whether the user is creating a composition string (IME events). */
    private _composing;
    constructor(zone: NgZone, changeDetector: ChangeDetectorRef, _renderer: Renderer2, _compositionMode: boolean, injector: Injector);
    set setValue(value: any);
    set setSize(size: EvoInputSizes | string);
    set setTheme(theme: string | EvoInputTheme);
    get isDisabled(): boolean;
    get value(): any;
    set value(value: any);
    get inputClass(): {
        [cssClass: string]: boolean;
    };
    get hasAdditional(): boolean;
    set maskValue(value: any);
    get maskValue(): any;
    get isClearable(): boolean;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onChange: (_value: any) => void;
    onTouched: () => void;
    ngAfterViewInit(): void;
    writeToElement(value: any): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(state: boolean): void;
    onInputChange(value: string): void;
    onFocus(): void;
    onBlur(): void;
    onTooltipClick(event: any): void;
    onClear(): void;
    hideTooltip(): void;
    showTooltip(): void;
    _compositionStart(): void;
    _compositionEnd(value: any): void;
    private removePrefix;
    private createMaskInstance;
    private destroyMask;
    private checkCustomTooltip;
    validate(): {
        mask: boolean;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<EvoInputComponent, [null, null, null, { optional: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EvoInputComponent, "evo-input", never, { "autoFocus": "autoFocus"; "dataCp": "data-cp"; "icon": "icon"; "mask": "mask"; "placeholder": "placeholder"; "tooltip": "tooltip"; "type": "type"; "disabled": "disabled"; "loading": "loading"; "prefix": "prefix"; "autocomplete": "autocomplete"; "inputDebounce": "inputDebounce"; "unmask": "unmask"; "clearable": "clearable"; "maskValidation": "maskValidation"; "setValue": "value"; "setSize": "size"; "setTheme": "theme"; }, { "blur": "blur"; }, never, ["[evoInputPrefixContent]", "[evoInputIcon]", "[tooltip]"]>;
}
