import { ElementRef, EventEmitter, OnInit, PipeTransform } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
export declare class MaskDirective implements OnInit, ControlValueAccessor {
    private elementRef;
    mask: string;
    promptChar: string;
    includeLiterals: boolean;
    set placeholder(val: string);
    get placeholder(): string;
    displayValuePipe: PipeTransform;
    focusedValuePipe: PipeTransform;
    private dataValue;
    onValueChange: EventEmitter<IMaskEventArgs>;
    private get value();
    private set value(value);
    private get nativeElement();
    private get selectionStart();
    private get selectionEnd();
    private _ctrlDown;
    private _paste;
    private _selection;
    private _placeholder;
    private _maskOptions;
    private _key;
    private _cursorOnPaste;
    private _valOnPaste;
    private _stopPropagation;
    private maskHelper;
    private _onTouchedCallback;
    private _onChangeCallback;
    constructor(elementRef: ElementRef);
    ngOnInit(): void;
    onKeydown(event: any): void;
    onKeyup(event: any): void;
    onPaste(event: any): void;
    onInputChanged(event: any): void;
    onFocus(value: any): void;
    onBlur(value: any): void;
    private getCursorPosition;
    private setCursorPosition;
    writeValue(value: any): void;
    registerOnChange(fn: (_: any) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MaskDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MaskDirective, "[mask]", never, { "mask": "mask"; "promptChar": "promptChar"; "includeLiterals": "includeLiterals"; "placeholder": "placeholder"; "displayValuePipe": "displayValuePipe"; "focusedValuePipe": "focusedValuePipe"; "dataValue": "dataValue"; }, { "onValueChange": "onValueChange"; }, never, never, false, never>;
}
export interface IMaskEventArgs {
    rawValue: string;
    formattedValue: string;
}
