import { Request, CloudFormation as AWSCloudFormation } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCloudFormation> = AWSCloudFormation[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCloudFormation, Extras> = AWSCloudFormation[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CloudFormation {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "cloudformation";
    readonly global: false;
    readonly category: "Management and Governance";
    readonly topLevelCalls: readonly ["describeAccountLimits", "describeStackEvents", "describeStackResources", "describeStacks", "listExports", "listStackSets", "listStacks", "listTypeRegistrations", "listTypeVersions", "listTypes"];
    activateType: (params: ParamsFrom<'activateType', Record<string, never>>) => Promise<ReturnTypeFrom<'activateType'>>;
    batchDescribeTypeConfigurations: (params: ParamsFrom<'batchDescribeTypeConfigurations', Record<string, never>>) => Promise<ReturnTypeFrom<'batchDescribeTypeConfigurations'>>;
    cancelUpdateStack: (params: ParamsFrom<'cancelUpdateStack', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelUpdateStack'>>;
    continueUpdateRollback: (params: ParamsFrom<'continueUpdateRollback', Record<string, never>>) => Promise<ReturnTypeFrom<'continueUpdateRollback'>>;
    createChangeSet: (params: ParamsFrom<'createChangeSet', Record<string, never>>) => Promise<ReturnTypeFrom<'createChangeSet'>>;
    createStack: (params: ParamsFrom<'createStack', Record<string, never>>) => Promise<ReturnTypeFrom<'createStack'>>;
    createStackInstances: (params: ParamsFrom<'createStackInstances', Record<string, never>>) => Promise<ReturnTypeFrom<'createStackInstances'>>;
    createStackSet: (params: ParamsFrom<'createStackSet', Record<string, never>>) => Promise<ReturnTypeFrom<'createStackSet'>>;
    deactivateType: (params: ParamsFrom<'deactivateType', Record<string, never>>) => Promise<ReturnTypeFrom<'deactivateType'>>;
    deleteChangeSet: (params: ParamsFrom<'deleteChangeSet', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteChangeSet'>>;
    deleteStack: (params: ParamsFrom<'deleteStack', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStack'>>;
    deleteStackInstances: (params: ParamsFrom<'deleteStackInstances', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStackInstances'>>;
    deleteStackSet: (params: ParamsFrom<'deleteStackSet', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStackSet'>>;
    deregisterType: (params: ParamsFrom<'deregisterType', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterType'>>;
    describeAccountLimits(params: {
        [K in keyof ParamsFrom<'describeAccountLimits', {
            next?: string;
        }>]: ParamsFrom<'describeAccountLimits', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeAccountLimits'>]-?: ReturnTypeFrom<'describeAccountLimits'>[K];
        }['AccountLimits'];
    }>;
    describeChangeSet: (params: ParamsFrom<'describeChangeSet', Record<string, never>>) => Promise<ReturnTypeFrom<'describeChangeSet'>>;
    describeChangeSetHooks: (params: ParamsFrom<'describeChangeSetHooks', Record<string, never>>) => Promise<ReturnTypeFrom<'describeChangeSetHooks'>>;
    describePublisher: (params: ParamsFrom<'describePublisher', Record<string, never>>) => Promise<ReturnTypeFrom<'describePublisher'>>;
    describeStackDriftDetectionStatus: (params: ParamsFrom<'describeStackDriftDetectionStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackDriftDetectionStatus'>>;
    describeStackEvents(params: {
        [K in keyof ParamsFrom<'describeStackEvents', {
            next?: string;
        }>]: ParamsFrom<'describeStackEvents', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeStackEvents'>]-?: ReturnTypeFrom<'describeStackEvents'>[K];
        }['StackEvents'];
    }>;
    describeStackInstance: (params: ParamsFrom<'describeStackInstance', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackInstance'>>;
    describeStackResource: (params: ParamsFrom<'describeStackResource', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackResource'>>;
    describeStackResourceDrifts: (params: ParamsFrom<'describeStackResourceDrifts', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackResourceDrifts'>>;
    describeStackResources: (params: ParamsFrom<'describeStackResources', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackResources'>>;
    describeStackSet: (params: ParamsFrom<'describeStackSet', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackSet'>>;
    describeStackSetOperation: (params: ParamsFrom<'describeStackSetOperation', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStackSetOperation'>>;
    describeStacks(params: {
        [K in keyof ParamsFrom<'describeStacks', {
            next?: string;
        }>]: ParamsFrom<'describeStacks', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeStacks'>]-?: ReturnTypeFrom<'describeStacks'>[K];
        }['Stacks'];
    }>;
    describeType: (params: ParamsFrom<'describeType', Record<string, never>>) => Promise<ReturnTypeFrom<'describeType'>>;
    describeTypeRegistration: (params: ParamsFrom<'describeTypeRegistration', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTypeRegistration'>>;
    detectStackDrift: (params: ParamsFrom<'detectStackDrift', Record<string, never>>) => Promise<ReturnTypeFrom<'detectStackDrift'>>;
    detectStackResourceDrift: (params: ParamsFrom<'detectStackResourceDrift', Record<string, never>>) => Promise<ReturnTypeFrom<'detectStackResourceDrift'>>;
    detectStackSetDrift: (params: ParamsFrom<'detectStackSetDrift', Record<string, never>>) => Promise<ReturnTypeFrom<'detectStackSetDrift'>>;
    estimateTemplateCost: (params: ParamsFrom<'estimateTemplateCost', Record<string, never>>) => Promise<ReturnTypeFrom<'estimateTemplateCost'>>;
    executeChangeSet: (params: ParamsFrom<'executeChangeSet', Record<string, never>>) => Promise<ReturnTypeFrom<'executeChangeSet'>>;
    getStackPolicy: (params: ParamsFrom<'getStackPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getStackPolicy'>>;
    getTemplate: (params: ParamsFrom<'getTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'getTemplate'>>;
    getTemplateSummary: (params: ParamsFrom<'getTemplateSummary', Record<string, never>>) => Promise<ReturnTypeFrom<'getTemplateSummary'>>;
    importStacksToStackSet: (params: ParamsFrom<'importStacksToStackSet', Record<string, never>>) => Promise<ReturnTypeFrom<'importStacksToStackSet'>>;
    listChangeSets(params: {
        [K in keyof ParamsFrom<'listChangeSets', {
            next?: string;
        }>]: ParamsFrom<'listChangeSets', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listChangeSets'>]-?: ReturnTypeFrom<'listChangeSets'>[K];
        }['Summaries'];
    }>;
    listExports(params: {
        [K in keyof ParamsFrom<'listExports', {
            next?: string;
        }>]: ParamsFrom<'listExports', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listExports'>]-?: ReturnTypeFrom<'listExports'>[K];
        }['Exports'];
    }>;
    listImports(params: {
        [K in keyof ParamsFrom<'listImports', {
            next?: string;
        }>]: ParamsFrom<'listImports', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listImports'>]-?: ReturnTypeFrom<'listImports'>[K];
        }['Imports'];
    }>;
    listStackInstances(params: {
        [K in keyof ParamsFrom<'listStackInstances', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStackInstances', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStackInstances'>]-?: ReturnTypeFrom<'listStackInstances'>[K];
        }['Summaries'];
    }>;
    listStackResources(params: {
        [K in keyof ParamsFrom<'listStackResources', {
            next?: string;
        }>]: ParamsFrom<'listStackResources', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStackResources'>]-?: ReturnTypeFrom<'listStackResources'>[K];
        }['StackResourceSummaries'];
    }>;
    listStackSetOperationResults(params: {
        [K in keyof ParamsFrom<'listStackSetOperationResults', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStackSetOperationResults', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStackSetOperationResults'>]-?: ReturnTypeFrom<'listStackSetOperationResults'>[K];
        }['Summaries'];
    }>;
    listStackSetOperations(params: {
        [K in keyof ParamsFrom<'listStackSetOperations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStackSetOperations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStackSetOperations'>]-?: ReturnTypeFrom<'listStackSetOperations'>[K];
        }['Summaries'];
    }>;
    listStackSets(params: {
        [K in keyof ParamsFrom<'listStackSets', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStackSets', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStackSets'>]-?: ReturnTypeFrom<'listStackSets'>[K];
        }['Summaries'];
    }>;
    listStacks(params: {
        [K in keyof ParamsFrom<'listStacks', {
            next?: string;
        }>]: ParamsFrom<'listStacks', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStacks'>]-?: ReturnTypeFrom<'listStacks'>[K];
        }['StackSummaries'];
    }>;
    listTypeRegistrations: (params: ParamsFrom<'listTypeRegistrations', Record<string, never>>) => Promise<ReturnTypeFrom<'listTypeRegistrations'>>;
    listTypeVersions: (params: ParamsFrom<'listTypeVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'listTypeVersions'>>;
    listTypes(params: {
        [K in keyof ParamsFrom<'listTypes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTypes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTypes'>]-?: ReturnTypeFrom<'listTypes'>[K];
        }['TypeSummaries'];
    }>;
    publishType: (params: ParamsFrom<'publishType', Record<string, never>>) => Promise<ReturnTypeFrom<'publishType'>>;
    recordHandlerProgress: (params: ParamsFrom<'recordHandlerProgress', Record<string, never>>) => Promise<ReturnTypeFrom<'recordHandlerProgress'>>;
    registerPublisher: (params: ParamsFrom<'registerPublisher', Record<string, never>>) => Promise<ReturnTypeFrom<'registerPublisher'>>;
    registerType: (params: ParamsFrom<'registerType', Record<string, never>>) => Promise<ReturnTypeFrom<'registerType'>>;
    rollbackStack: (params: ParamsFrom<'rollbackStack', Record<string, never>>) => Promise<ReturnTypeFrom<'rollbackStack'>>;
    setStackPolicy: (params: ParamsFrom<'setStackPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'setStackPolicy'>>;
    setTypeConfiguration: (params: ParamsFrom<'setTypeConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'setTypeConfiguration'>>;
    setTypeDefaultVersion: (params: ParamsFrom<'setTypeDefaultVersion', Record<string, never>>) => Promise<ReturnTypeFrom<'setTypeDefaultVersion'>>;
    signalResource: (params: ParamsFrom<'signalResource', Record<string, never>>) => Promise<ReturnTypeFrom<'signalResource'>>;
    stopStackSetOperation: (params: ParamsFrom<'stopStackSetOperation', Record<string, never>>) => Promise<ReturnTypeFrom<'stopStackSetOperation'>>;
    testType: (params: ParamsFrom<'testType', Record<string, never>>) => Promise<ReturnTypeFrom<'testType'>>;
    updateStack: (params: ParamsFrom<'updateStack', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStack'>>;
    updateStackInstances: (params: ParamsFrom<'updateStackInstances', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStackInstances'>>;
    updateStackSet: (params: ParamsFrom<'updateStackSet', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStackSet'>>;
    updateTerminationProtection: (params: ParamsFrom<'updateTerminationProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'updateTerminationProtection'>>;
    validateTemplate: (params: ParamsFrom<'validateTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'validateTemplate'>>;
    static fromClient(client: AWSCloudFormation): CloudFormation;
    static client(options?: AWSCloudFormation.Types.ClientConfiguration): CloudFormation;
}
export {};
