import { ElementRef, EventEmitter, PipeTransform, Renderer2, OnInit, AfterViewChecked } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { MaskParsingService, MaskOptions } from './mask-parsing.service';
import { IBaseEventArgs } from '../../core/utils';
export declare class IgxMaskDirective implements OnInit, AfterViewChecked, ControlValueAccessor {
    protected elementRef: ElementRef;
    protected maskParser: MaskParsingService;
    protected renderer: Renderer2;
    /**
     * Sets the input mask.
     * ```html
     * <input [igxMask] = "'00/00/0000'">
     * ```
     */
    get mask(): string;
    set mask(val: string);
    /**
     * Sets the character representing a fillable spot in the input mask.
     * Default value is "'_'".
     * ```html
     * <input [promptChar] = "'/'">
     * ```
     */
    promptChar: string;
    /**
     * Specifies if the bound value includes the formatting symbols.
     * ```html
     * <input [includeLiterals] = "true">
     * ```
     */
    includeLiterals: boolean;
    /**
     * Specifies a placeholder.
     * ```html
     * <input placeholder = "enter text...">
     * ```
     */
    set placeholder(val: string);
    get placeholder(): string;
    /**
     * Specifies a pipe to be used on blur.
     * ```html
     * <input [displayValuePipe] = "displayFormatPipe">
     * ```
     */
    displayValuePipe: PipeTransform;
    /**
     * Specifies a pipe to be used on focus.
     * ```html
     * <input [focusedValuePipe] = "inputFormatPipe">
     * ```
     */
    focusedValuePipe: PipeTransform;
    /**
     * Emits an event each time the value changes.
     * Provides `rawValue: string` and `formattedValue: string` as event arguments.
     * ```html
     * <input (onValueChange) = "onValueChange(rawValue: string, formattedValue: string)">
     * ```
     */
    onValueChange: EventEmitter<IMaskEventArgs>;
    /** @hidden */
    get nativeElement(): HTMLInputElement;
    /** @hidden @internal; */
    protected get inputValue(): string;
    /** @hidden @internal */
    protected set inputValue(val: string);
    /** @hidden */
    protected get maskOptions(): MaskOptions;
    /** @hidden */
    protected get selectionStart(): number;
    /** @hidden */
    protected get selectionEnd(): number;
    /** @hidden */
    protected get start(): number;
    /** @hidden */
    protected get end(): number;
    private _end;
    private _start;
    private _key;
    private _mask;
    private _oldText;
    private _dataValue;
    private _focused;
    private _droppedData;
    private _hasDropAction;
    private _stopPropagation;
    private readonly defaultMask;
    private _onTouchedCallback;
    private _onChangeCallback;
    constructor(elementRef: ElementRef, maskParser: MaskParsingService, renderer: Renderer2);
    /** @hidden */
    ngOnInit(): void;
    /**
     * TODO: Remove after date/time picker integration refactor
     * @hidden
     */
    ngAfterViewChecked(): void;
    /** @hidden */
    onKeyDown(event: any): void;
    /** @hidden */
    onInputChanged(): void;
    /** @hidden */
    onPaste(): void;
    /** @hidden */
    onFocus(): void;
    /** @hidden */
    onBlur(value: string): void;
    /** @hidden */
    onDragEnter(): void;
    /** @hidden */
    onDragLeave(): void;
    /** @hidden */
    onDrop(event: DragEvent): void;
    /** @hidden */
    protected showMask(value: string): void;
    /** @hidden */
    protected setSelectionRange(start: number, end?: number): void;
    /** @hidden */
    protected afterInput(): void;
    /** @hidden */
    protected setPlaceholder(value: string): void;
    private updateInputValue;
    private showDisplayValue;
    /** @hidden */
    writeValue(value: string): void;
    /** @hidden */
    registerOnChange(fn: (_: any) => void): void;
    /** @hidden */
    registerOnTouched(fn: () => void): void;
}
/**
 * The IgxMaskModule provides the {@link IgxMaskDirective} inside your application.
 */
export interface IMaskEventArgs extends IBaseEventArgs {
    rawValue: string;
    formattedValue: string;
}
/** @hidden */
export declare class IgxMaskModule {
}
