import { EventEmitter, Injector, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';
import { ValidatorService } from '../services/validator.service';
import { NiceComponentLibraryConfig } from '../models/nice-component-library.config';
import { AlignEnum } from '../enums/align.enum';
import { CvaFormControl } from './cva-form-control';
import * as i0 from "@angular/core";
export declare class CvaInputComponent implements ControlValueAccessor, CvaFormControl, OnInit {
    private injector;
    label: string;
    name: string;
    placeholder: string;
    hint: string;
    required: boolean;
    disabled: boolean;
    text: string;
    type: string;
    pattern: any;
    errorMessages: Map<string, (e?: any) => string>;
    onChange: EventEmitter<string>;
    multiline: boolean;
    isLabelOutside: boolean;
    isFloatLabel: boolean;
    minLength: number | undefined;
    maxLength: number | undefined;
    alignText: AlignEnum;
    onFocusStatus: boolean;
    maxLengthDisplay: number | undefined;
    percentOfLabelOutside: number;
    suffixFontAwesomeClass: string;
    patternFilter: string;
    isFormControl: boolean;
    formatFunc: any;
    formControl: AbstractControl | null;
    config: NiceComponentLibraryConfig;
    constructor(injector: Injector, ngControl: NgControl);
    get NsValidator(): typeof ValidatorService;
    get textValue(): string;
    set textValue(val: string);
    getFormControl(): AbstractControl | null;
    ngOnInit(): void;
    callValidator(): void;
    propagateChange: (_: any) => void;
    /**
     * Write a new value to the element.
     */
    writeValue(obj: any): void;
    /**
     * Set the function to be called
     * when the formControl receives a change event.
     */
    registerOnChange(fn: any): void;
    /**
     * Set the function to be called
     * when the formControl receives a touch event.
     */
    registerOnTouched(): void;
    displayLength(): string | number;
    getMaxLength(): number;
    onFocus(): void;
    onBlur(event?: any): void;
    isShowControl(): boolean;
    onClear(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CvaInputComponent, [null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CvaInputComponent, "cva-input", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "type": { "alias": "type"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "isLabelOutside": { "alias": "isLabelOutside"; "required": false; }; "isFloatLabel": { "alias": "isFloatLabel"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "alignText": { "alias": "alignText"; "required": false; }; "maxLengthDisplay": { "alias": "maxLengthDisplay"; "required": false; }; "percentOfLabelOutside": { "alias": "percentOfLabelOutside"; "required": false; }; "suffixFontAwesomeClass": { "alias": "suffixFontAwesomeClass"; "required": false; }; "patternFilter": { "alias": "patternFilter"; "required": false; }; "isFormControl": { "alias": "isFormControl"; "required": false; }; "formatFunc": { "alias": "formatFunc"; "required": false; }; }, { "onChange": "onChange"; }, never, never, false, never>;
}
