import { BoxProps, ElementProps, Factory, StylesApiProps } from '../../core'; import { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input'; export interface MaskInputProps extends BoxProps, __BaseInputProps, StylesApiProps, ElementProps<'input', 'size'> { /** Mask pattern string or array of string literals and RegExp objects */ mask: string | Array; /** Override or extend the default token map */ tokens?: Record; /** Called before masking on each keystroke, can return overrides for mask options */ modify?: (value: string) => Partial> | undefined; /** When true, raw and display values are decoupled */ separate?: boolean; /** Character displayed in unfilled slots, `"_"` by default */ slotChar?: string | null; /** Show mask pattern even when field is empty and unfocused */ alwaysShowMask?: boolean; /** Show mask placeholder on focus, `true` by default */ showMaskOnFocus?: boolean; /** Transform each character before validation and insertion */ transform?: (char: string) => string; /** Clear value on blur when mask is incomplete, `false` by default */ autoClear?: boolean; /** Called on every change with raw and masked values */ onChangeRaw?: (rawValue: string, maskedValue: string) => void; /** Called when all required mask slots are filled */ onComplete?: (maskedValue: string, rawValue: string) => void; /** Escape hatch for advanced cursor/value manipulation */ beforeMaskedStateChange?: (states: { previousState: { value: string; selection: { start: number; end: number; } | null; }; currentState: { value: string; selection: { start: number; end: number; } | null; }; nextState: { value: string; selection: { start: number; end: number; } | null; }; }) => { value: string; selection: { start: number; end: number; } | null; }; } export type MaskInputFactory = Factory<{ props: MaskInputProps; variant: InputVariant; ref: HTMLInputElement; stylesNames: __InputStylesNames; }>; export declare const MaskInput: import("../..").MantineComponent<{ props: MaskInputProps; variant: InputVariant; ref: HTMLInputElement; stylesNames: __InputStylesNames; }>;