/**
 * DNS Provider Module
 * Unified DNS management for Route53, Porkbun, and GoDaddy
 */
export * from './types';
export { PorkbunProvider } from './porkbun';
export { GoDaddyProvider } from './godaddy';
export { CloudflareProvider } from './cloudflare';
export { Route53Provider } from './route53-adapter';
export { UnifiedDnsValidator, createPorkbunValidator, createGoDaddyValidator, createRoute53Validator, } from './validator';
import type { DnsProvider, DnsProviderConfig } from './types';
/**
 * Create a DNS provider from configuration
 */
export declare function createDnsProvider(config: DnsProviderConfig): DnsProvider;
/**
 * Auto-detect DNS provider for a domain
 * Tries each provider to see which one can manage the domain
 */
export declare function detectDnsProvider(domain: string, configs: DnsProviderConfig[]): Promise<DnsProvider | null>;
/**
 * DNS Provider factory with environment variable support
 */
export declare class DnsProviderFactory {
    private providers;
    private configs;
    /**
     * Add provider configuration
     */
    addConfig(config: DnsProviderConfig): this;
    /**
     * Add Route53 provider
     */
    addRoute53(region?: string, hostedZoneId?: string): this;
    /**
     * Add Porkbun provider
     */
    addPorkbun(apiKey: string, secretKey: string): this;
    /**
     * Add GoDaddy provider
     */
    addGoDaddy(apiKey: string, apiSecret: string, environment?: 'production' | 'ote'): this;
    /**
     * Add Cloudflare provider
     */
    addCloudflare(apiToken: string): this;
    /**
     * Load providers from environment variables
     */
    loadFromEnv(): this;
    /**
     * Get a provider by name
     */
    getProvider(name: 'route53' | 'porkbun' | 'godaddy' | 'cloudflare'): DnsProvider | null;
    /**
     * Auto-detect provider for a domain
     */
    getProviderForDomain(domain: string): Promise<DnsProvider | null>;
    /**
     * Get all configured providers
     */
    getAllProviders(): DnsProvider[];
}
/**
 * Default factory instance (can be configured globally)
 */
export declare const dnsProviders: DnsProviderFactory;
