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';
/**
 * 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;
    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;
}
