import { ControlValueAccessor } from '@angular/forms';
import { IConfig } from './config';
import { AswMaskService } from './mask.service';
import * as i0 from "@angular/core";
export declare class AswMaskDirective implements ControlValueAccessor {
    private document;
    private maskService;
    private maskValue;
    private inputValue;
    private position;
    private start;
    private end;
    onChange: (_: any) => void;
    onTouch: () => void;
    constructor(document: any, maskService: AswMaskService);
    set maskExpression(value: string);
    set specialCharacters(value: IConfig['specialCharacters']);
    set patterns(value: IConfig['patterns']);
    set prefix(value: IConfig['prefix']);
    set sufix(value: IConfig['sufix']);
    set dropSpecialCharacters(value: IConfig['dropSpecialCharacters']);
    set showMaskTyped(value: IConfig['showMaskTyped']);
    set showTemplate(value: IConfig['showTemplate']);
    set clearIfNotMatch(value: 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;
    private _repeatPatternSymbols;
    static ɵfac: i0.ɵɵFactoryDeclaration<AswMaskDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AswMaskDirective, "[aswMask]", never, { "maskExpression": { "alias": "aswMask"; "required": false; }; "specialCharacters": { "alias": "specialCharacters"; "required": false; }; "patterns": { "alias": "patterns"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "sufix": { "alias": "sufix"; "required": false; }; "dropSpecialCharacters": { "alias": "dropSpecialCharacters"; "required": false; }; "showMaskTyped": { "alias": "showMaskTyped"; "required": false; }; "showTemplate": { "alias": "showTemplate"; "required": false; }; "clearIfNotMatch": { "alias": "clearIfNotMatch"; "required": false; }; }, {}, never, never, false, never>;
}
