import { Request, CodeArtifact as AWSCodeArtifact } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCodeArtifact> = AWSCodeArtifact[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCodeArtifact, Extras> = AWSCodeArtifact[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CodeArtifact {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "codeartifact";
    readonly global: false;
    readonly category: "Developer Tools";
    readonly topLevelCalls: readonly ["listDomains", "listRepositories"];
    associateExternalConnection: (params: ParamsFrom<'associateExternalConnection', Record<string, never>>) => Promise<ReturnTypeFrom<'associateExternalConnection'>>;
    copyPackageVersions: (params: ParamsFrom<'copyPackageVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'copyPackageVersions'>>;
    createDomain: (params: ParamsFrom<'createDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'createDomain'>>;
    createRepository: (params: ParamsFrom<'createRepository', Record<string, never>>) => Promise<ReturnTypeFrom<'createRepository'>>;
    deleteDomain: (params: ParamsFrom<'deleteDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDomain'>>;
    deleteDomainPermissionsPolicy: (params: ParamsFrom<'deleteDomainPermissionsPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDomainPermissionsPolicy'>>;
    deletePackageVersions: (params: ParamsFrom<'deletePackageVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePackageVersions'>>;
    deleteRepository: (params: ParamsFrom<'deleteRepository', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRepository'>>;
    deleteRepositoryPermissionsPolicy: (params: ParamsFrom<'deleteRepositoryPermissionsPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRepositoryPermissionsPolicy'>>;
    describeDomain: (params: ParamsFrom<'describeDomain', Record<string, never>>) => Promise<ReturnTypeFrom<'describeDomain'>>;
    describePackage: (params: ParamsFrom<'describePackage', Record<string, never>>) => Promise<ReturnTypeFrom<'describePackage'>>;
    describePackageVersion: (params: ParamsFrom<'describePackageVersion', Record<string, never>>) => Promise<ReturnTypeFrom<'describePackageVersion'>>;
    describeRepository: (params: ParamsFrom<'describeRepository', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRepository'>>;
    disassociateExternalConnection: (params: ParamsFrom<'disassociateExternalConnection', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateExternalConnection'>>;
    disposePackageVersions: (params: ParamsFrom<'disposePackageVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'disposePackageVersions'>>;
    getAuthorizationToken: (params: ParamsFrom<'getAuthorizationToken', Record<string, never>>) => Promise<ReturnTypeFrom<'getAuthorizationToken'>>;
    getDomainPermissionsPolicy: (params: ParamsFrom<'getDomainPermissionsPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getDomainPermissionsPolicy'>>;
    getPackageVersionAsset: (params: ParamsFrom<'getPackageVersionAsset', Record<string, never>>) => Promise<ReturnTypeFrom<'getPackageVersionAsset'>>;
    getPackageVersionReadme: (params: ParamsFrom<'getPackageVersionReadme', Record<string, never>>) => Promise<ReturnTypeFrom<'getPackageVersionReadme'>>;
    getRepositoryEndpoint: (params: ParamsFrom<'getRepositoryEndpoint', Record<string, never>>) => Promise<ReturnTypeFrom<'getRepositoryEndpoint'>>;
    getRepositoryPermissionsPolicy: (params: ParamsFrom<'getRepositoryPermissionsPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getRepositoryPermissionsPolicy'>>;
    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'];
    }>;
    listPackageVersionAssets(params: {
        [K in keyof ParamsFrom<'listPackageVersionAssets', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listPackageVersionAssets', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPackageVersionAssets'>]-?: ReturnTypeFrom<'listPackageVersionAssets'>[K];
        }['assets'];
    }>;
    listPackageVersionDependencies: (params: ParamsFrom<'listPackageVersionDependencies', Record<string, never>>) => Promise<ReturnTypeFrom<'listPackageVersionDependencies'>>;
    listPackageVersions(params: {
        [K in keyof ParamsFrom<'listPackageVersions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listPackageVersions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPackageVersions'>]-?: ReturnTypeFrom<'listPackageVersions'>[K];
        }['versions'];
    }>;
    listPackages(params: {
        [K in keyof ParamsFrom<'listPackages', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listPackages', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listPackages'>]-?: ReturnTypeFrom<'listPackages'>[K];
        }['packages'];
    }>;
    listRepositories(params: {
        [K in keyof ParamsFrom<'listRepositories', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRepositories', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRepositories'>]-?: ReturnTypeFrom<'listRepositories'>[K];
        }['repositories'];
    }>;
    listRepositoriesInDomain(params: {
        [K in keyof ParamsFrom<'listRepositoriesInDomain', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRepositoriesInDomain', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRepositoriesInDomain'>]-?: ReturnTypeFrom<'listRepositoriesInDomain'>[K];
        }['repositories'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    putDomainPermissionsPolicy: (params: ParamsFrom<'putDomainPermissionsPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putDomainPermissionsPolicy'>>;
    putPackageOriginConfiguration: (params: ParamsFrom<'putPackageOriginConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putPackageOriginConfiguration'>>;
    putRepositoryPermissionsPolicy: (params: ParamsFrom<'putRepositoryPermissionsPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putRepositoryPermissionsPolicy'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updatePackageVersionsStatus: (params: ParamsFrom<'updatePackageVersionsStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'updatePackageVersionsStatus'>>;
    updateRepository: (params: ParamsFrom<'updateRepository', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRepository'>>;
    static fromClient(client: AWSCodeArtifact): CodeArtifact;
    static client(options?: AWSCodeArtifact.Types.ClientConfiguration): CodeArtifact;
}
export {};
