/**
 * IDN (Internationalized Domain Names) utilities
 * Uses Node's built-in Punycode via url.domainToASCII (Node >= 18).
 */
/**
 * Convert domain to Punycode / ASCII format.
 */
export declare function domainToPunycode(domain: string): string;
/**
 * Convert email address's domain to Punycode.
 */
export declare function emailToPunycode(email: string): string;
/**
 * Error codes for IDN validation
 */
export declare enum IDNValidationError {
    MISSING_INPUT = "MISSING_INPUT",
    EMAIL_TOO_LONG = "EMAIL_TOO_LONG",
    MISSING_AT_SYMBOL = "MISSING_AT_SYMBOL",
    LOCAL_PART_EMPTY = "LOCAL_PART_EMPTY",
    LOCAL_PART_TOO_LONG = "LOCAL_PART_TOO_LONG",
    LOCAL_PART_INVALID = "LOCAL_PART_INVALID",
    DOMAIN_EMPTY = "DOMAIN_EMPTY",
    DOMAIN_TOO_LONG = "DOMAIN_TOO_LONG",
    DOMAIN_INVALID_FORMAT = "DOMAIN_INVALID_FORMAT",
    MISSING_TLD = "MISSING_TLD",
    NUMERIC_TLD = "NUMERIC_TLD",
    INVALID_ENCODING = "INVALID_ENCODING"
}
/**
 * Validates an email address according to international standards (IDNA).
 */
export declare function validateInternationalEmail(email: string): {
    type: 'IDN_VALIDATION_ERROR';
    code: IDNValidationError;
    message: string;
} | undefined;
//# sourceMappingURL=idn.d.ts.map