import type { IDnsProviderClient, IConnectionTestResult, IProviderRecord, IProviderRecordInput } from './interfaces.js';
import type { IProviderDomainListing } from '../../../dist_ts_interfaces/data/dns-provider.js';
/**
 * Cloudflare implementation of IDnsProviderClient.
 *
 * Wraps `@apiclient.xyz/cloudflare`. Records at Cloudflare are addressed by
 * an internal record id, which we surface as `providerRecordId` so the rest
 * of the system can issue updates and deletes without ambiguity (Cloudflare
 * can have multiple records of the same name+type).
 */
export declare class CloudflareDnsProvider implements IDnsProviderClient {
    private cfAccount;
    constructor(apiToken: string);
    testConnection(): Promise<IConnectionTestResult>;
    listDomains(): Promise<IProviderDomainListing[]>;
    listRecords(domain: string): Promise<IProviderRecord[]>;
    createRecord(domain: string, record: IProviderRecordInput): Promise<IProviderRecord>;
    updateRecord(domain: string, providerRecordId: string, record: IProviderRecordInput): Promise<IProviderRecord>;
    deleteRecord(domain: string, providerRecordId: string): Promise<void>;
    private isSupportedType;
}
