/// <reference types="react" />
import { type IMask } from 'react-imask';
import type { IMaskInputProps } from 'react-imask/dist/mixin';
import { type TextFieldProps } from '../TextField';
type MaskProps = IMaskInputProps<IMask.AnyMaskedOptions, boolean, string, HTMLInputElement>;
export type MaskBlocks = Record<string, {
    mask: typeof IMask.MaskedRange;
    from: number;
    to: number;
    maxLength: number;
}>;
export type MaskFieldProps = Omit<Omit<MaskProps, 'size' | 'defaultValue' | 'rows' | 'value' | 'label' | 'inputRef'> & TextFieldProps, 'onChange' | 'onAccept'> & {
    onChange?: (value: string) => void;
    onAccept?: (value: string, maskRef: IMask.InputMask<IMask.AnyMaskedOptions>, e?: InputEvent | undefined, onChange?: (changeValue: string) => void) => void;
    /**
     * Автоматически исправляет введенное значение под маску. Если передан 'pad' - подставляет 0 перед цифрами в дате
     */
    autofix?: boolean | 'pad';
    /**
     * Кастомные определения (definitions) для более точной настройки маски
     */
    definitions?: IMask.MaskedPattern['definitions'];
    /**
     * Сущность работающая в комбинации с пропсом `mask`, позволяет делать динамическую маску, в которой при удалении элементов, они заменяются подчеркиванием вместо смещения всего значения
     */
    blocks?: MaskBlocks;
};
export declare const MaskField: import("react").ForwardRefExoticComponent<Omit<MaskFieldProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
export {};
