import type { IMaskInputProps } from '@skbkontur/react-imask';
import type { InputProps, InputType } from '../Input';
import { Input } from '../Input';
export type MaskedInputOnBeforePasteValue = (value: string) => string;
export interface MaskedProps {
    /** Шаблон ввода, определяющий допустимые символы. */
    mask: string;
    /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.
     * @default _ */
    maskChar?: string;
    /** Словарь правил для настройки маски, где:
     * ключ — символ для использования в маске;
     * значение — регулярка-правило.
     * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */
    formatChars?: Record<string, string>;
    /** Всегда показывать символы маски, независимо от фокуса в поле.
     * @default false */
    alwaysShowMask?: boolean;
    /** Событие некорректного ввода.
     * Вторым аргументом передаётся метод вспыхивания рамки поля.
     *
     * Если обработчик не задан, то при событии рамка всегда вспыхивает.
     *
     * @param value значение поля
     * @param blink метод вспыхивания рамки поля
     */
    onUnexpectedInput?: (value: string, blink: () => void) => void;
    /**
     * Событие перед вставкой текста в поле.
     * Вызывается с аргументом value — текст из буфера.
     *
     * Обработчик должен вернуть текст — он попадёт в поле.
     *
     * @param value значение вставки.
     */
    onBeforePasteValue?: MaskedInputOnBeforePasteValue;
    /** Убирает из value символы маски, которые пользователь не вводил.
     * @default false */
    unmask?: boolean;
    /** Раскрашивает символы маски.
     * @default true
     * @ignore */
    colored?: boolean;
    /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов
     * @ignore */
    imaskProps?: IMaskInputProps<HTMLInputElement>;
}
export type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;
export declare const getSafeMaskInputType: (type?: InputType) => MaskInputType | undefined;
export interface MaskedInputProps extends MaskedProps, Omit<InputProps, 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {
    type?: MaskInputType;
}
/** Поле ввода, которое ограничивает формат вводимого значения по заданной маске. Такое поле облегчает пользователю ввод и снижает количество ошибок.
 */
export declare const MaskedInput: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<Input, MaskedInputProps> & Record<never, never>;
