import { AfterViewInit, EventEmitter, Renderer2, ElementRef, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { InputMask } from './core/input-mask';
import { AbstractControl, NgControl } from '@angular/forms';
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import { ValueAccessorBase } from './core/value-accessor';
import { InputConfig } from './core/input.config';
import * as i0 from "@angular/core";
/**
 * Input Component personalized with few features.
 *
 * import { InputModule } from 'truly-ui';
 *
 * @Component({
 *  selector: 'my-app-comp',
 *  template: '
 *  <tl-input
 *   [(ngModel)]="title"
 *   [iconBefore]="'ion-email'"
 *   [iconAfter]="'ion-email'"
 *   [textBefore]="'R$'"
 *   [textAfter]="'00,00'"
 *   [placeholder]="'Meu Input'"
 *   [clearButton]="true"
 *   [readonly]="true"
 *   [disabled]="true"
 *   [toUpperCase]="true">
 *  </tl-input>
 *  '
 * })
 */
export declare class TlInput extends ValueAccessorBase<string> implements OnInit, OnDestroy, AfterViewInit {
    private inputConfig;
    ngControl: NgControl;
    private tlInput;
    private renderer;
    private change;
    textBefore: string;
    textAfter: string;
    labelPlacement: string;
    labelSize: string;
    name: string;
    label: string;
    color: string;
    iconBefore: string;
    iconAfter: string;
    clearButton: boolean;
    readonly: boolean;
    required: boolean;
    disabled: boolean;
    autocomplete: string;
    maxlength: number;
    tabindex: number;
    textAlign: 'left' | 'right' | 'center' | 'justify';
    mask: string;
    placeholder: string;
    type: string;
    height: string;
    withBorder: boolean;
    flatBorder: boolean;
    input: any;
    inputBox: any;
    cdkOverlayOrigin: CdkOverlayOrigin;
    clear: EventEmitter<any>;
    overlayOrigin: EventEmitter<any>;
    clickAddon: EventEmitter<any>;
    click: EventEmitter<MouseEvent>;
    focus: EventEmitter<any>;
    blur: EventEmitter<any>;
    valid: EventEmitter<boolean>;
    completeMask: EventEmitter<boolean>;
    isShowingMessages: boolean;
    fieldMask: InputMask;
    hasValidator: any;
    private subscription;
    constructor(inputConfig: InputConfig, ngControl: NgControl, tlInput: ElementRef, renderer: Renderer2, change: ChangeDetectorRef);
    get control(): AbstractControl<any, any>;
    setControl(): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    handleRequiredValidator(): void;
    handleValidator(): void;
    handleMask(): void;
    onClickAddon($event: any, side: any): void;
    onInputClick($event: MouseEvent): void;
    setOptions(options: InputConfig): void;
    stopEvent($event: any): void;
    setFocus(): void;
    getNativeInput(): any;
    onInputFocus($event: any): void;
    onInputBlur($event: any): void;
    clearInput($event?: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlInput, [{ optional: true; }, { optional: true; self: true; }, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlInput, "tl-input", never, { "textBefore": "textBefore"; "textAfter": "textAfter"; "labelPlacement": "labelPlacement"; "labelSize": "labelSize"; "name": "name"; "label": "label"; "color": "color"; "iconBefore": "iconBefore"; "iconAfter": "iconAfter"; "clearButton": "clearButton"; "readonly": "readonly"; "required": "required"; "disabled": "disabled"; "autocomplete": "autocomplete"; "maxlength": "maxlength"; "tabindex": "tabindex"; "textAlign": "textAlign"; "mask": "mask"; "placeholder": "placeholder"; "type": "type"; "height": "height"; "withBorder": "withBorder"; "flatBorder": "flatBorder"; }, { "clear": "clear"; "overlayOrigin": "overlayOrigin"; "clickAddon": "clickAddon"; "click": "click"; "focus": "focus"; "blur": "blur"; "valid": "valid"; "completeMask": "completeMask"; }, never, never, false, never>;
}
//# sourceMappingURL=input.d.ts.map