import { MaskBlock, MaskBlockList } from './blocks';
import { MaskClipboardContext, MaskContext, MaskFocusContext, MaskKeyboardContext, MaskLocaleContext, MaskMouseContext, MaskValueChangedContext } from './context';
import { Mask } from './mask-interfaces';
export declare abstract class AbstractMask implements Mask {
    abstract maxLength: number;
    abstract minLength: number;
    inputMode: BalProps.BalInputInputMode;
    protected blocks: MaskBlockList;
    protected locale: string;
    constructor(blocks?: MaskBlock[]);
    onLocaleChange(context: MaskLocaleContext, _oldLocale: string, oldBlocks: MaskBlockList): void;
    onFocus(_context: MaskFocusContext): void;
    onBlur(_context: MaskFocusContext): void;
    onChange(context: MaskContext): void;
    onNavigationDown(_context: MaskKeyboardContext, _block: MaskBlock, _index: number): void;
    onSelectAll(_context: MaskKeyboardContext, _block: MaskBlock, _index: number): void;
    onPaste(context: MaskClipboardContext, _block: MaskBlock, _index: number): void;
    onBlockChange(context: MaskKeyboardContext, block: MaskBlock, index: number): void;
    onBackspaceDown(context: MaskKeyboardContext, block: MaskBlock, index: number): void;
    onDeleteDown(context: MaskKeyboardContext, block: MaskBlock, index: number): void;
    onValueChanged(context: MaskValueChangedContext): void;
    onParseValue(inputValue?: string): string;
    onFormatValue(rawValue?: string): string;
    toParsedValue(inputValue?: string): string;
    toFormattedValue(inputValue?: string): string;
    fireI18nChange(context: MaskLocaleContext): void;
    fireValueChanged(context: MaskValueChangedContext): void;
    firePaste(context: MaskClipboardContext): void;
    fireClick(context: MaskMouseContext): void;
    fireFocus(context: MaskFocusContext): void;
    fireBlur(context: MaskFocusContext): void;
    fireKeyDown(context: MaskKeyboardContext): void;
    protected resetInputValueWithMask(context: MaskContext): void;
    protected isValueEmptyMask(context: MaskContext): boolean;
    protected emptyInputValue(context: MaskContext): void;
}
