import { ModulVue } from '../../utils/vue/vue';
export interface InternalCleaveOptions {
    numericOnly?: boolean;
    delimiters?: ReadonlyArray<string>;
    blocks?: ReadonlyArray<number>;
    numeral?: boolean;
    numeralDecimalScale?: number;
    numeralThousandsGroupStyle?: 'lakh' | 'thousand' | 'wan' | 'none';
    numeralIntegerScale?: number;
    numeralDecimalMark?: string;
    numeralPositiveOnly?: boolean;
    stripLeadingZeroes?: boolean;
    removeTrailingDecimalMark?: boolean;
    forceDecimalScale?: boolean;
    phone?: boolean;
    phoneRegionCode?: string;
    prefix?: string;
    time?: boolean;
    timePattern?: ReadonlyArray<string>;
    delimiter?: string;
    delimiterLazyShow?: boolean;
    uppercase?: boolean;
}
export interface InputMaskOptions extends InternalCleaveOptions {
    removeTrailingDecimalMark?: boolean;
    forceDecimalScale?: boolean;
}
/**
 * inspired from https://github.com/ankurk91/vue-cleave-component/blob/master/src/component.js
 */
export declare class MInputMask extends ModulVue {
    readonly maxLength: number;
    readonly value: string;
    readonly raw: boolean;
    readonly options: InputMaskOptions;
    $refs: {
        input: HTMLInputElement;
    };
    private cleave;
    private internalModel;
    mounted(): void;
    beforeDestroy(): void;
    private getOptions;
    focusAndSelectAll(): Promise<any>;
    focus(): Promise<any>;
    optionsChanged(options: any): void;
    inputValueChanged(inputValue: string): void;
    onFocus($event: any): void;
    onBlur($event: any): void;
    onKeyup($event: KeyboardEvent): void;
    onKeydownTextfield($event: KeyboardEvent): void;
    onTextInput($event: KeyboardEvent): void;
    onEnter($event: any): void;
    onPasteTextfield($event: any): void;
    onDropTextfield($event: any): void;
    onChange($event: any): void;
    updateRawValue(rawValue?: string): void;
}
//# sourceMappingURL=input-mask.d.ts.map