export interface MaskTemplate { pattern: string; hasAmPm: boolean; } /** * Convert a display format string into a mask template. * * Format chars (d, M, y, H, h, m, s) → digit slots (#). * A (from AA) → ampm letter slots (@). * Everything else → literal separators. * * Examples: * "dd/MM/yyyy" → "##/##/####" * "hh:mm AA" → "##:## @@" */ export declare const buildMaskTemplate: (format: string) => MaskTemplate; /** * Build a range mask template: two single-date templates joined by " - ". */ export declare const buildRangeMaskTemplate: (format: string) => MaskTemplate; /** * Check if a format string uses only fixed-width numeric tokens (dd, MM, yyyy, etc). * Returns false for single-char tokens (d, M) and textual tokens (MMM, MMMM). */ export declare const isFixedWidthFormat: (format: string) => boolean; /** * Apply the mask template to raw input text. * * - Auto-inserts separators as the user types. * - When the mask is full, typing in the middle replaces the digit at cursor. * - Backspacing in the middle replaces the digit with '_' placeholder * instead of shifting subsequent digits. * - AM/PM auto-completes: typing "A" or "P" expands to "AM" or "PM". */ export declare const applyMask: (inputText: string, template: MaskTemplate, previousText?: string, nativeCursorPos?: number | null) => { text: string; cursorPosition: number; };