/**
 * RFC-compliant Email Address Parser
 *
 * Supports:
 * - RFC 5322: Internet Message Format (basic name <email> format)
 * - RFC 2047: MIME encoded-words for non-ASCII characters
 * - RFC 5322: Comments in parentheses
 * - RFC 5322: Quoted strings with special characters
 * - RFC 6531: Internationalized email addresses (UTF-8)
 */
export interface ParsedEmailAddress {
    /** Display name (decoded if RFC 2047 encoded) */
    name: string | null;
    /** Email address */
    email: string;
    /** Original unparsed string */
    original: string;
}
/**
 * Parses an email address string according to RFC 5322 and related RFCs
 *
 * Supported formats:
 * 1. Simple email: "email@example.com"
 * 2. Name with angle brackets: "Name <email@example.com>"
 * 3. Quoted name: "\"Doe, John\" <email@example.com>"
 * 4. RFC 2047 encoded: "=?UTF-8?B?...?= <email@example.com>"
 * 5. With comment: "email@example.com (Display Name)"
 * 6. Mixed: "\"Name\" <email@example.com> (comment)"
 *
 * @param emailString - The email address string to parse
 * @returns Parsed email address with name, email, and original string
 *
 * @example
 * parseEmailAddress('Strapi <no-reply@strapi.io>')
 * // { name: 'Strapi', email: 'no-reply@strapi.io', original: '...' }
 *
 * @example
 * parseEmailAddress('=?UTF-8?B?U3RyYXBp?= <no-reply@strapi.io>')
 * // { name: 'Strapi', email: 'no-reply@strapi.io', original: '...' }
 *
 * @example
 * parseEmailAddress('no-reply@strapi.io (Strapi Support)')
 * // { name: 'Strapi Support', email: 'no-reply@strapi.io', original: '...' }
 */
export declare const parseEmailAddress: (emailString: string | undefined | null) => ParsedEmailAddress;
/**
 * Formats an email address according to RFC 5322
 *
 * @param name - Display name (will be quoted if contains special chars)
 * @param email - Email address
 * @returns Formatted email address string
 *
 * @example
 * formatEmailAddress('Strapi', 'no-reply@strapi.io')
 * // 'Strapi <no-reply@strapi.io>'
 *
 * @example
 * formatEmailAddress('Doe, John', 'john@example.com')
 * // '"Doe, John" <john@example.com>'
 */
export declare const formatEmailAddress: (name: string | null, email: string) => string;
/**
 * Validates an email address according to RFC 5322
 * This is a simplified validation that covers most common cases
 *
 * @param email - Email address to validate
 * @returns true if the email appears valid
 */
export declare const isValidEmail: (email: string) => boolean;
/**
 * Parses multiple email addresses separated by commas
 * Handles quoted strings that may contain commas
 *
 * @param emailsString - Comma-separated email addresses
 * @returns Array of parsed email addresses
 *
 * @example
 * parseMultipleEmailAddresses('a@example.com, "Doe, John" <b@example.com>')
 * // [{ name: null, email: 'a@example.com', ... }, { name: 'Doe, John', email: 'b@example.com', ... }]
 */
export declare const parseMultipleEmailAddresses: (emailsString: string | undefined | null) => ParsedEmailAddress[];
