import { ERRORS, type PhoneFormat, type PhoneInput, type PhoneValidationResult, type PhoneDetails } from '../types/phone-number';
/**
 * Validates a Moroccan phone number
 * @param phone Phone number to validate
 * @returns Validation result with details
 */
export declare function validatePhone(phone: PhoneInput): PhoneValidationResult;
/**
 * Formats a phone number to specified format (NATIONAL, INTERNATIONAL, E164, RFC3966)
 * @param phone Phone number to format
 * @param format Desired format
 * @returns Formatted number or null if invalid
 */
export declare function formatPhone(phone: PhoneInput, format?: PhoneFormat): string | null;
/**
 * Gets comprehensive details about a phone number including validation, type, formats
 * @param phone Phone number to analyze
 * @returns Detailed phone information
 */
export declare function getPhoneDetails(phone: string): PhoneDetails;
/**
 * Extracts valid Moroccan phone numbers from text
 * @param text Text containing potential phone numbers
 * @returns Array of valid unique numbers in national format
 */
export declare function extractPhoneNumbers(text: string): string[];
/**
 * Masks a phone number for privacy (+212 XX ****** X)
 * @param phone Phone number to mask
 * @param maskChar Character for masking
 * @returns Masked number or null if invalid
 */
export declare function maskPhone(phone: string, maskChar?: string): string | null;
/**
 * Compares two phone numbers for equality after normalization
 * @param phone1 First phone number
 * @param phone2 Second phone number
 * @returns True if numbers are equivalent
 */
export declare function arePhoneNumbersEqual(phone1: string, phone2: string): boolean;
export { ERRORS };
/**
 * Sanitizes a phone number by removing non-numeric characters
 * @param phone Phone number to sanitize
 * @returns Sanitized number or null if invalid
 */
export declare function sanitizePhone(phone: PhoneInput): string | null;
