import { Request, ACMPCA as AWSACMPCA } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSACMPCA> = AWSACMPCA[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSACMPCA, Extras> = AWSACMPCA[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class ACMPCA {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "acm-pca";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly ["listCertificateAuthorities"];
    createCertificateAuthority: (params: ParamsFrom<'createCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'createCertificateAuthority'>>;
    createCertificateAuthorityAuditReport: (params: ParamsFrom<'createCertificateAuthorityAuditReport', Record<string, never>>) => Promise<ReturnTypeFrom<'createCertificateAuthorityAuditReport'>>;
    createPermission: (params: ParamsFrom<'createPermission', Record<string, never>>) => Promise<ReturnTypeFrom<'createPermission'>>;
    deleteCertificateAuthority: (params: ParamsFrom<'deleteCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCertificateAuthority'>>;
    deletePermission: (params: ParamsFrom<'deletePermission', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePermission'>>;
    deletePolicy: (params: ParamsFrom<'deletePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePolicy'>>;
    describeCertificateAuthority: (params: ParamsFrom<'describeCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCertificateAuthority'>>;
    describeCertificateAuthorityAuditReport: (params: ParamsFrom<'describeCertificateAuthorityAuditReport', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCertificateAuthorityAuditReport'>>;
    getCertificate: (params: ParamsFrom<'getCertificate', Record<string, never>>) => Promise<ReturnTypeFrom<'getCertificate'>>;
    getCertificateAuthorityCertificate: (params: ParamsFrom<'getCertificateAuthorityCertificate', Record<string, never>>) => Promise<ReturnTypeFrom<'getCertificateAuthorityCertificate'>>;
    getCertificateAuthorityCsr: (params: ParamsFrom<'getCertificateAuthorityCsr', Record<string, never>>) => Promise<ReturnTypeFrom<'getCertificateAuthorityCsr'>>;
    getPolicy: (params: ParamsFrom<'getPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getPolicy'>>;
    importCertificateAuthorityCertificate: (params: ParamsFrom<'importCertificateAuthorityCertificate', Record<string, never>>) => Promise<ReturnTypeFrom<'importCertificateAuthorityCertificate'>>;
    issueCertificate: (params: ParamsFrom<'issueCertificate', Record<string, never>>) => Promise<ReturnTypeFrom<'issueCertificate'>>;
    listCertificateAuthorities(params: {
        [K in keyof ParamsFrom<'listCertificateAuthorities', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listCertificateAuthorities', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listCertificateAuthorities'>]-?: ReturnTypeFrom<'listCertificateAuthorities'>[K];
        }['CertificateAuthorities'];
    }>;
    listPermissions(params: {
        [K in keyof ParamsFrom<'listPermissions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listPermissions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPermissions'>]-?: ReturnTypeFrom<'listPermissions'>[K];
        }['Permissions'];
    }>;
    listTags(params: {
        [K in keyof ParamsFrom<'listTags', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTags', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTags'>]-?: ReturnTypeFrom<'listTags'>[K];
        }['Tags'];
    }>;
    putPolicy: (params: ParamsFrom<'putPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putPolicy'>>;
    restoreCertificateAuthority: (params: ParamsFrom<'restoreCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'restoreCertificateAuthority'>>;
    revokeCertificate: (params: ParamsFrom<'revokeCertificate', Record<string, never>>) => Promise<ReturnTypeFrom<'revokeCertificate'>>;
    tagCertificateAuthority: (params: ParamsFrom<'tagCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'tagCertificateAuthority'>>;
    untagCertificateAuthority: (params: ParamsFrom<'untagCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'untagCertificateAuthority'>>;
    updateCertificateAuthority: (params: ParamsFrom<'updateCertificateAuthority', Record<string, never>>) => Promise<ReturnTypeFrom<'updateCertificateAuthority'>>;
    static fromClient(client: AWSACMPCA): ACMPCA;
    static client(options?: AWSACMPCA.Types.ClientConfiguration): ACMPCA;
}
export {};
