/**
 * GoDaddy DNS Provider
 * API documentation: https://developer.godaddy.com/doc/endpoint/domains
 */
import type { CreateRecordResult, DeleteRecordResult, DnsProvider, DnsRecord, DnsRecordType, ListRecordsResult } from './types';
export declare class GoDaddyProvider implements DnsProvider {
    readonly name = "godaddy";
    private apiKey;
    private apiSecret;
    private baseUrl;
    constructor(apiKey: string, apiSecret: string, environment?: 'production' | 'ote');
    /**
     * Make an authenticated API request to GoDaddy
     */
    private request;
    /**
     * Extract the subdomain from a full record name
     * GoDaddy uses @ for root domain
     */
    private getSubdomain;
    /**
     * Get the root domain from a full domain name
     */
    private getRootDomain;
    /**
     * Convert DnsRecord to GoDaddy record format
     */
    private toGoDaddyRecord;
    /**
     * Convert GoDaddy record to DnsRecordResult format
     */
    private fromGoDaddyRecord;
    createRecord(domain: string, record: DnsRecord): Promise<CreateRecordResult>;
    upsertRecord(domain: string, record: DnsRecord): Promise<CreateRecordResult>;
    deleteRecord(domain: string, record: DnsRecord): Promise<DeleteRecordResult>;
    listRecords(domain: string, type?: DnsRecordType): Promise<ListRecordsResult>;
    canManageDomain(domain: string): Promise<boolean>;
    /**
     * List all domains managed by this GoDaddy account
     */
    listDomains(): Promise<string[]>;
    /**
     * Get domain details (GoDaddy-specific)
     */
    getDomainDetails(domain: string): Promise<{
        domain: string;
        status: string;
        nameServers?: string[];
        expires?: string;
    } | null>;
    /**
     * Update nameservers for a domain (GoDaddy-specific)
     */
    updateNameServers(domain: string, nameservers: string[]): Promise<boolean>;
    /**
     * Check domain availability (GoDaddy-specific)
     */
    checkDomainAvailability(domain: string): Promise<{
        available: boolean;
        price?: number;
        currency?: string;
    }>;
}
