import { Request, Route53Domains as AWSRoute53Domains } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSRoute53Domains> = AWSRoute53Domains[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSRoute53Domains, Extras> = AWSRoute53Domains[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Route53Domains {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "route53domains";
    readonly global: false;
    readonly category: "Networking and Content Delivery";
    readonly topLevelCalls: readonly ["listDomains", "listOperations", "listPrices", "viewBilling"];
    acceptDomainTransferFromAnotherAwsAccount: (params: ParamsFrom<'acceptDomainTransferFromAnotherAwsAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'acceptDomainTransferFromAnotherAwsAccount'>>;
    cancelDomainTransferToAnotherAwsAccount: (params: ParamsFrom<'cancelDomainTransferToAnotherAwsAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelDomainTransferToAnotherAwsAccount'>>;
    checkDomainAvailability: (params: ParamsFrom<'checkDomainAvailability', Record<string, never>>) => Promise<ReturnTypeFrom<'checkDomainAvailability'>>;
    checkDomainTransferability: (params: ParamsFrom<'checkDomainTransferability', Record<string, never>>) => Promise<ReturnTypeFrom<'checkDomainTransferability'>>;
    deleteDomain: (params: ParamsFrom<'deleteDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDomain'>>;
    deleteTagsForDomain: (params: ParamsFrom<'deleteTagsForDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTagsForDomain'>>;
    disableDomainAutoRenew: (params: ParamsFrom<'disableDomainAutoRenew', Record<string, never>>) => Promise<ReturnTypeFrom<'disableDomainAutoRenew'>>;
    disableDomainTransferLock: (params: ParamsFrom<'disableDomainTransferLock', Record<string, never>>) => Promise<ReturnTypeFrom<'disableDomainTransferLock'>>;
    enableDomainAutoRenew: (params: ParamsFrom<'enableDomainAutoRenew', Record<string, never>>) => Promise<ReturnTypeFrom<'enableDomainAutoRenew'>>;
    enableDomainTransferLock: (params: ParamsFrom<'enableDomainTransferLock', Record<string, never>>) => Promise<ReturnTypeFrom<'enableDomainTransferLock'>>;
    getContactReachabilityStatus: (params: ParamsFrom<'getContactReachabilityStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getContactReachabilityStatus'>>;
    getDomainDetail: (params: ParamsFrom<'getDomainDetail', Record<string, never>>) => Promise<ReturnTypeFrom<'getDomainDetail'>>;
    getDomainSuggestions: (params: ParamsFrom<'getDomainSuggestions', Record<string, never>>) => Promise<ReturnTypeFrom<'getDomainSuggestions'>>;
    getOperationDetail: (params: ParamsFrom<'getOperationDetail', Record<string, never>>) => Promise<ReturnTypeFrom<'getOperationDetail'>>;
    listDomains(params: {
        [K in keyof ParamsFrom<'listDomains', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDomains', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDomains'>]-?: ReturnTypeFrom<'listDomains'>[K];
        }['Domains'];
    }>;
    listOperations(params: {
        [K in keyof ParamsFrom<'listOperations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listOperations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listOperations'>]-?: ReturnTypeFrom<'listOperations'>[K];
        }['Operations'];
    }>;
    listPrices(params: {
        [K in keyof ParamsFrom<'listPrices', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listPrices', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPrices'>]-?: ReturnTypeFrom<'listPrices'>[K];
        }['Prices'];
    }>;
    listTagsForDomain: (params: ParamsFrom<'listTagsForDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForDomain'>>;
    registerDomain: (params: ParamsFrom<'registerDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'registerDomain'>>;
    rejectDomainTransferFromAnotherAwsAccount: (params: ParamsFrom<'rejectDomainTransferFromAnotherAwsAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'rejectDomainTransferFromAnotherAwsAccount'>>;
    renewDomain: (params: ParamsFrom<'renewDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'renewDomain'>>;
    resendContactReachabilityEmail: (params: ParamsFrom<'resendContactReachabilityEmail', Record<string, never>>) => Promise<ReturnTypeFrom<'resendContactReachabilityEmail'>>;
    retrieveDomainAuthCode: (params: ParamsFrom<'retrieveDomainAuthCode', Record<string, never>>) => Promise<ReturnTypeFrom<'retrieveDomainAuthCode'>>;
    transferDomain: (params: ParamsFrom<'transferDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'transferDomain'>>;
    transferDomainToAnotherAwsAccount: (params: ParamsFrom<'transferDomainToAnotherAwsAccount', Record<string, never>>) => Promise<ReturnTypeFrom<'transferDomainToAnotherAwsAccount'>>;
    updateDomainContact: (params: ParamsFrom<'updateDomainContact', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDomainContact'>>;
    updateDomainContactPrivacy: (params: ParamsFrom<'updateDomainContactPrivacy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDomainContactPrivacy'>>;
    updateDomainNameservers: (params: ParamsFrom<'updateDomainNameservers', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDomainNameservers'>>;
    updateTagsForDomain: (params: ParamsFrom<'updateTagsForDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'updateTagsForDomain'>>;
    viewBilling(params: {
        [K in keyof ParamsFrom<'viewBilling', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'viewBilling', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'viewBilling'>]-?: ReturnTypeFrom<'viewBilling'>[K];
        }['BillingRecords'];
    }>;
    static fromClient(client: AWSRoute53Domains): Route53Domains;
    static client(options?: AWSRoute53Domains.Types.ClientConfiguration): Route53Domains;
}
export {};
