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;
};
