/**
 * Provider Data Schema
 *
 * This represents the compressed format for provider data
 * designed to reduce file size and improve parsing performance.
 */
/**
 * Provider interface
 * Uses compact field names for smaller JSON size
 */
/**
 * Provider types:
 * - public_provider: Regular email providers (Gmail, Yahoo, etc.)
 * - custom_provider: Business email services (Google Workspace, Microsoft 365)
 * - proxy_service: Email proxy services (Cloudflare, etc.)
 */
export type ProviderType = 'public_provider' | 'custom_provider' | 'proxy_service';
export interface Provider {
    /** Provider ID (short identifier) */
    id: string;
    /** Provider display name */
    companyProvider: string;
    /** Login/webmail URL (or null if not available) */
    loginUrl: string | null;
    /** Email domains (omitted if empty) */
    domains?: string[];
    /** DNS detection patterns (flattened) */
    mx?: string[];
    txt?: string[];
    /** Provider type */
    type: ProviderType;
    /** Alias rules for username part */
    alias?: {
        dots?: {
            ignore: boolean;
            strip: boolean;
        };
        plus?: {
            ignore: boolean;
            strip: boolean;
        };
        case?: {
            ignore: boolean;
            strip: boolean;
        };
    };
}
/**
 * Providers file structure
 */
export interface ProvidersData {
    /** Schema version for future migrations */
    version: string;
    /** Compressed providers array */
    providers: Provider[];
    /** Metadata */
    meta: {
        count: number;
        domains: number;
        generated: string;
    };
}
/**
 * Common TXT pattern prefixes that can be compressed
 */
export declare const TXT_PATTERN_COMPRESSION: {
    readonly 'v=spf1 include:': "spf:";
    readonly 'v=spf1 ': "spf1:";
    readonly 'google-site-verification=': "gsv:";
    readonly 'MS=ms': "ms";
    readonly 'zoho-verification=': "zv:";
    readonly 'mailgun-verification=': "mv:";
};
/**
 * Compress TXT patterns by removing common prefixes
 */
export declare function compressTxtPattern(pattern: string): string;
/**
 * Decompress TXT patterns by restoring prefixes
 */
export declare function decompressTxtPattern(compressed: string): string;
/**
 * Validation schema for providers
 */
export declare function validateProvider(provider: Provider): string[];
//# sourceMappingURL=schema.d.ts.map