import type { Cache } from './cache-interface';
import type { DomainSuggestion, DomainSuggestionParams } from './types';
/**
 * List of common email domains for typo detection
 * Includes popular free providers, business providers, and hosting services
 */
export declare const commonEmailDomains: string[];
/**
 * Default domain suggestion method using string similarity (sync version)
 */
export declare function defaultDomainSuggestionMethod(domain: string, commonDomains?: string[]): DomainSuggestion | null;
/**
 * Async version of default domain suggestion method
 */
export declare function defaultDomainSuggestionMethodAsync(domain: string, commonDomains?: string[], cache?: Cache): Promise<DomainSuggestion | null>;
/**
 * Suggest a corrected domain for a potentially misspelled email domain
 * @param params - Parameters including domain and optional custom method
 * @returns Domain suggestion with confidence score, or null if no suggestion
 */
export declare function suggestDomain(params: DomainSuggestionParams): DomainSuggestion | null;
/**
 * Convenience function to suggest domain from email address
 * @param email - Email address to check for domain typos
 * @param commonDomains - Optional list of common domains to check against
 * @param cache - Optional cache instance
 * @returns Domain suggestion with confidence score, or null if no suggestion
 */
export declare function suggestEmailDomain(email: string, commonDomains?: string[], cache?: Cache): Promise<DomainSuggestion | null>;
/**
 * Check if a domain is in the common domains list
 * @param domain - Domain to check
 * @param commonDomains - Optional custom list of common domains
 * @returns True if domain is common, false otherwise
 */
export declare function isCommonDomain(domain: string, commonDomains?: string[]): boolean;
/**
 * Get similarity score between two domains
 * @param domain1 - First domain
 * @param domain2 - Second domain
 * @returns Similarity score between 0 and 1
 */
export declare function getDomainSimilarity(domain1: string, domain2: string): number;
