import type { IDnsProviderClient } from './interfaces.js'; import type { TDnsProviderType, TDnsProviderCredentials } from '../../../dist_ts_interfaces/data/dns-provider.js'; /** * Instantiate a runtime DNS provider client from a stored DnsProviderDoc. * * @throws if the provider type is not supported. * * ## Adding a new provider (e.g. Route53) * * 1. **Type union** — extend `TDnsProviderType` in * `ts_interfaces/data/dns-provider.ts` (e.g. `'cloudflare' | 'route53'`). * 2. **Credentials interface** — add `IRoute53Credentials` and append it to * the `TDnsProviderCredentials` discriminated union. * 3. **Descriptor** — append a new entry to `dnsProviderTypeDescriptors` so * the OpsServer UI picks up the new type and renders the right credential * form fields automatically. * 4. **Provider class** — create `ts/dns/providers/route53.provider.ts` * implementing `IDnsProviderClient`. * 5. **Factory case** — add a new `case 'route53':` below. The * `_exhaustive: never` line will fail to compile until you do. * 6. **Index** — re-export the new class from `ts/dns/providers/index.ts`. */ export declare function createDnsProvider(type: TDnsProviderType, credentials: TDnsProviderCredentials): IDnsProviderClient;