import { ControlValueAccessor } from '@angular/forms';
import { MaskService } from './mask.service';
import { IConfig } from './config';
export declare class MaskDirective implements ControlValueAccessor {
    private document;
    private _maskService;
    onChange: (_: any) => void;
    onTouch: () => void;
    private _maskValue;
    private _inputValue;
    private _position;
    constructor(document: any, _maskService: MaskService);
    maskExpression: string;
    specialCharacters: IConfig['specialCharacters'];
    patterns: IConfig['patterns'];
    prefix: IConfig['prefix'];
    sufix: IConfig['sufix'];
    dropSpecialCharacters: IConfig['dropSpecialCharacters'];
    showTemplate: IConfig['showTemplate'];
    clearIfNotMatch: IConfig['clearIfNotMatch'];
    onInput(e: KeyboardEvent): void;
    onBlur(): void;
    onFocus(e: MouseEvent | KeyboardEvent): void;
    a(e: KeyboardEvent): void;
    onPaste(): void;
    /** It writes the value in the input */
    writeValue(inputValue: string): Promise<void>;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    /** It disables the input element */
    setDisabledState(isDisabled: boolean): void;
}
