import { ChangeDetectorRef, InjectionToken, OnInit } from '@angular/core';
import { ControlValueAccessor, NgForm } from '@angular/forms';
import IMask from 'imask';
import { ControlComponent } from '../control/control.component';
import { AutocompleteValue } from '../autocomplete';
import * as i0 from "@angular/core";
export declare const inputTypes: readonly ["text", "password", "email", "tel", "number", "date", "iban", "amount"];
export declare type InputType = typeof inputTypes[number];
export declare type InputMode = 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';
export declare const INPUT_STRATEGY: InjectionToken<InputStrategy>;
export interface InputStrategy {
    type?: string;
    mask?: IMask.AnyMaskedOptions;
    placeholder?: string;
    prefix?: string;
    inputMode?: InputMode;
    parse?(outsideValue: any): any;
    format?(insideValue: any): any;
}
export declare class InputComponent implements ControlValueAccessor, OnInit {
    private changeDetectorRef;
    private strategy;
    private form;
    private control;
    name: string;
    private _type;
    autocomplete: AutocompleteValue;
    private _mask;
    private _placeholder;
    private _inputmode;
    private _prefix;
    flexible: boolean;
    set setFlexible(value: boolean);
    value: any;
    required: boolean;
    set setRequired(value: boolean);
    disabled: boolean;
    set setDisabled(value: boolean);
    autofocus: boolean;
    set setAutofocus(value: boolean);
    private onChange;
    private onTouched;
    private _pattern;
    constructor(changeDetectorRef: ChangeDetectorRef, strategy: InputStrategy, form: NgForm, control: ControlComponent);
    ngOnInit(): void;
    get label(): any;
    get isFilled(): boolean;
    get type(): string;
    set pattern(value: string);
    get pattern(): string;
    get prefix(): string;
    get inputmode(): InputMode;
    get mask(): IMask.AnyMaskedOptions;
    get placeholder(): string;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: () => {}): void;
    writeValue(outsideValue: any): void;
    setDisabledState(isDisabled: boolean): void;
    updateValue(insideValue: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, [null, { optional: true; }, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ui-input", never, { "name": "name"; "_type": "type"; "autocomplete": "autocomplete"; "_mask": "mask"; "_placeholder": "placeholder"; "_inputmode": "inputmode"; "_prefix": "prefix"; "setFlexible": "flexible"; "setRequired": "required"; "setDisabled": "disabled"; "setAutofocus": "autofocus"; "pattern": "pattern"; }, {}, never, never>;
}
