/**
 * Input masking utilities for the Input component
 * These functions handle formatting and validation for specialized input types
 */
/**
 * Format credit card input with hyphens every 4 digits
 * @param value The raw input value
 * @returns The formatted credit card number
 */
export declare const formatCreditCard: (value: string) => string;
/**
 * Format expiry date input as MM/YY
 * @param value The raw input value
 * @returns The formatted expiry date
 */
export declare const formatExpiryDate: (value: string) => string;
/**
 * Validate month (01-12) in expiry date
 * @param value The current input value
 * @returns Whether the month is valid
 */
export declare const isValidMonth: (value: string) => boolean;
/**
 * Apply phone number formatting (US format: (XXX) XXX-XXXX)
 * @param value The raw input value
 * @returns The formatted phone number
 */
export declare const formatPhoneNumber: (value: string) => string;
/**
 * Format US Social Security Number (XXX-XX-XXXX)
 * @param value The raw input value
 * @returns The formatted SSN
 */
export declare const formatSSN: (value: string) => string;
/**
 * Format date input as MM/DD/YYYY, DD/MM/YYYY, or YYYY/MM/DD
 * WITH REAL-TIME VALIDATION - prevents invalid month/day values as user types
 * @param value The raw input value
 * @param format The date format to use (default: MM/DD/YYYY)
 * @returns The formatted date string (only valid digits are kept)
 */
export declare const formatDateInput: (value: string, format?: "MM/DD/YYYY" | "DD/MM/YYYY" | "YYYY/MM/DD") => string;
/**
 * Validate if a date string is a valid date
 * @param value The formatted date string
 * @param format The date format being used
 * @returns Whether the date is valid
 */
export declare const isValidDateInput: (value: string, format?: "MM/DD/YYYY" | "DD/MM/YYYY" | "YYYY/MM/DD") => boolean;
/**
 * Format currency input (adds commas for thousands and limits decimal places)
 * @param value The raw input value
 * @param decimalPlaces Number of decimal places (default: 2)
 * @returns The formatted currency value
 */
export declare const formatCurrency: (value: string, decimalPlaces?: number) => string;
/**
 * Apply specific input masking based on input type
 * @param value The current input value
 * @param type The type of mask to apply
 * @param options Additional options for formatting
 * @returns The masked/formatted value
 */
export declare const applyInputMask: (value: string, type: string, options?: {
    currencyDecimalPlaces?: number;
}) => string;
/**
 * Check if a masked input needs validation
 * @param type The input mask type
 * @param value The current value
 * @returns Whether the value is valid or not
 */
export declare const validateMaskedInput: (type: string, value: string) => boolean;
/**
 * Format time input as HH:MM with real-time validation
 * Prevents invalid hour/minute values as user types
 * @param value The raw input value
 * @param format The time format ('12h' or '24h')
 * @returns The formatted time string (only valid digits are kept)
 */
export declare const formatTimeInput: (value: string, format?: "12h" | "24h") => string;
/**
 * Validate if a formatted time string is a complete, valid time
 * @param value The formatted time string (HH:MM)
 * @param format The time format ('12h' or '24h')
 * @returns Whether the time is valid and complete
 */
export declare const isValidTimeInput: (value: string, format?: "12h" | "24h") => boolean;
/**
 * Get cursor position after applying a mask
 * This helps maintain the cursor position when formatting
 * @param previousValue Previous input value
 * @param currentValue Current formatted value
 * @param previousPosition Previous cursor position
 * @returns The new cursor position
 */
export declare const getAdjustedCursorPosition: (previousValue: string, currentValue: string, previousPosition: number) => number;
