import { default as React } from 'react'; import { BaseComponentProps, ComponentEvent } from '../types'; /** * Mask character definitions: * '9' - digit (0-9) * 'a' - letter (a-z, A-Z) * '*' - alphanumeric (a-z, A-Z, 0-9) * Any other character - treated as a literal separator */ export type MaskedInputPreset = 'phone' | 'phone-us' | 'phone-intl' | 'date' | 'date-us' | 'ssn' | 'credit-card' | 'zip' | 'zip-plus4' | 'time'; export interface MaskedInputProps extends BaseComponentProps, Omit, 'onChange' | 'size' | 'value'> { /** The mask pattern. Use '9' for digit, 'a' for letter, '*' for alphanumeric, any other char as literal separator. Either mask or preset must be provided */ mask?: string; /** Built-in mask preset that auto-fills mask and a format hint */ preset?: MaskedInputPreset; /** Format hint string (auto-derived from preset). Linked via aria-describedby for SR users */ formatHint?: string; /** Current value (raw unmasked, or masked - component normalises it) */ value?: string; onChange?: (event: ComponentEvent) => void; /** Character shown for empty mask slots */ slotChar?: string; placeholder?: string; required?: boolean; readonly?: boolean; autoFocus?: boolean; id?: string; /** Called with the raw (unmasked) value when it changes */ onRawChange?: (raw: string, masked: string) => void; /** Whether to include literal separator characters in the onChange value */ includeLiterals?: boolean; error?: string | boolean; invalid?: boolean; helperText?: React.ReactNode; } export declare const MaskedInput: React.ForwardRefExoticComponent>;