import { 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 { CurrencyMaskConfig } from 'ngx-currency';
import { IValidatorMessage, IInputVal, IAlign, IAutoComplete } from '../constants';
import { IType, ValidatorFunc } from './types';
export declare class ZUIInputComponent implements ControlValueAccessor {
    #private;
    /** default "200px", eg: "300px", "400em", "500rem" */
    width: string;
    label: string;
    placeholder: string;
    pattern: string;
    hint: string;
    name: string;
    prefixValue: string;
    suffixValue: string;
    align: IAlign;
    /** https://mui.com/material-ui/material-icons */
    prefixIcon: string;
    /** https://mui.com/material-ui/material-icons */
    suffixIcon: string;
    max: number;
    min: number;
    maxLength: number;
    minLength: number;
    rows: number;
    minRows: number;
    maxRows: number;
    spellcheckVal: boolean;
    set spellcheck(val: IInputVal);
    autosizeVal: boolean;
    set autosize(val: IInputVal);
    requiredVal: boolean;
    set required(val: IInputVal);
    autofocusVal: boolean;
    set autofocus(val: IInputVal);
    disabledVal: boolean;
    set disabled(val: IInputVal);
    disabledErrorVal: boolean;
    set disabledError(val: IInputVal);
    tooltipDisabled: boolean;
    set showTooltip(val: IInputVal);
    tooltipPosition: TooltipPosition;
    fullWidth: boolean;
    set noFullWidth(val: IInputVal);
    showClearIcon: boolean;
    set hideClearIcon(val: IInputVal);
    hideArrows: boolean;
    set showArrows(val: IInputVal);
    formatCurrency: boolean;
    set noCurrency(val: IInputVal);
    allowToggle: boolean;
    set disabledToggle(val: IInputVal);
    validateFirstVal: boolean;
    set validateFirst(val: IInputVal);
    disabledValidate: boolean;
    /** 'on' | 'off' | 'new-password' */
    autocomplete: IAutoComplete;
    /** "string" | "number" | "password" | "email" | "textarea" */
    type: IType;
    /** https://www.npmjs.com/package/ngx-currency */
    set options(val: CurrencyMaskConfig);
    optionsDefault: CurrencyMaskConfig;
    optionsVal: CurrencyMaskConfig;
    validatorMessage: IValidatorMessage;
    validatorMessageDefault: IValidatorMessage;
    validatorMessageVal: IValidatorMessage;
    /** "legacy" | "standard" | "fill" | "outline"*/
    appearance: MatFormFieldAppearance;
    set model(value: string);
    set form(val: NgForm | FormGroup);
    set validator(validator: ValidatorFunc);
    modelChange: EventEmitter<string>;
    prefixAction: EventEmitter<void>;
    suffixAction: EventEmitter<void>;
    formControl: FormControl;
    visibility: boolean;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(): void;
    ngAfterViewInit(): void;
    get error(): IInputVal;
    get showClearContent(): boolean;
    get existsPrefixAction(): boolean;
    get existsSuffixAction(): boolean;
    onChange(_: any): void;
    registerOnTouched(): void;
    registerOnChange(fn: () => void): void;
    writeValue(value: string): void;
}
