import { OnInit } from '@angular/core';
import { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';
import { InputControlType } from '../../../interfaces/form';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "../../../utils/coercion";
export declare class ItInputComponent extends ItAbstractFormComponent<string | number | null | undefined> implements OnInit {
    /**
     * The input type
     * @default text
     */
    type: InputControlType;
    /**
     * The input placeholder
     */
    placeholder: string;
    /**
     * The input description
     */
    description: string | undefined;
    /**
     * To prevent modification of the contained value.
     * - <b>plaintext</b>: Readonly field in the form stylized as plain text
     * @default undefined
     */
    readonly: boolean | 'plaintext' | undefined;
    /**
     * The max date value [Used only in type = 'date']
     * @default '9999-12-31'
     * @example 'yyyy-mm-dd'
     */
    maxDate?: string;
    /**
     * The min date value [Used only in type = 'date']
     * @example 'yyyy-mm-dd'
     */
    minDate: string | undefined;
    /**
     * The max value [Used only in type = 'number']
     */
    max: number | undefined;
    /**
     * The min value [Used only in type = 'number']
     */
    min: number | undefined;
    /**
     * The step value [Used only in type = 'number']
     */
    step: number | 'any' | undefined;
    /**
     * If is a currency number [Used only in type = 'number']
     * @default false
     */
    currency?: boolean;
    /**
     * If is a percentage number [Used only in type = 'number']
     * @default false
     */
    percentage?: boolean;
    /**
     * The currency or percentage symbol [Used only if percentage or currency]
     * @example '$'
     */
    symbol: string | undefined;
    /**
     * To make the numeric field automatically resize according to the value contained in it. [Used only in type = 'number']
     * @default false
     */
    adaptive?: boolean;
    /**
     * Input autocomplete attribute (Browser autocomplete)
     * @default undefined
     */
    autocomplete: string | undefined;
    get isActiveLabel(): boolean;
    /**
     * Check is readonly field
     */
    protected get isReadonly(): boolean;
    /**
     * Return the invalid message string from TranslateService
     */
    get invalidMessage(): Observable<string>;
    ngOnInit(): void;
    /**
     * Increment or decrease the input number value of step
     * @param decrease true to decrease value
     */
    protected incrementNumber(decrease?: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ItInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ItInputComponent, "it-input", never, { "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "description": { "alias": "description"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "currency": { "alias": "currency"; "required": false; }; "percentage": { "alias": "percentage"; "required": false; }; "symbol": { "alias": "symbol"; "required": false; }; "adaptive": { "alias": "adaptive"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, ["[prependText]", "[append]", "[appendText]", "[error]"], true, never>;
    static ngAcceptInputType_currency: i1.BooleanInput;
    static ngAcceptInputType_percentage: i1.BooleanInput;
    static ngAcceptInputType_adaptive: i1.BooleanInput;
}
