import { Request, CloudFront as AWSCloudFront } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCloudFront> = AWSCloudFront[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCloudFront, Extras> = AWSCloudFront[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CloudFront {
    private readonly client;
    private constructor();
    readonly signingRegion = "us-east-1";
    readonly service: "cloudfront";
    readonly global: true;
    readonly category: "Networking and Content Delivery";
    readonly topLevelCalls: readonly ["listCloudFrontOriginAccessIdentities", "listDistributions", "listStreamingDistributions"];
    associateAlias: (params: ParamsFrom<'associateAlias', Record<string, never>>) => Promise<ReturnTypeFrom<'associateAlias'>>;
    createCachePolicy: (params: ParamsFrom<'createCachePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createCachePolicy'>>;
    createCloudFrontOriginAccessIdentity: (params: ParamsFrom<'createCloudFrontOriginAccessIdentity', Record<string, never>>) => Promise<ReturnTypeFrom<'createCloudFrontOriginAccessIdentity'>>;
    createDistribution: (params: ParamsFrom<'createDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'createDistribution'>>;
    createDistributionWithTags: (params: ParamsFrom<'createDistributionWithTags', Record<string, never>>) => Promise<ReturnTypeFrom<'createDistributionWithTags'>>;
    createFieldLevelEncryptionConfig: (params: ParamsFrom<'createFieldLevelEncryptionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'createFieldLevelEncryptionConfig'>>;
    createFieldLevelEncryptionProfile: (params: ParamsFrom<'createFieldLevelEncryptionProfile', Record<string, never>>) => Promise<ReturnTypeFrom<'createFieldLevelEncryptionProfile'>>;
    createFunction: (params: ParamsFrom<'createFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'createFunction'>>;
    createInvalidation: (params: ParamsFrom<'createInvalidation', Record<string, never>>) => Promise<ReturnTypeFrom<'createInvalidation'>>;
    createKeyGroup: (params: ParamsFrom<'createKeyGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createKeyGroup'>>;
    createMonitoringSubscription: (params: ParamsFrom<'createMonitoringSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'createMonitoringSubscription'>>;
    createOriginAccessControl: (params: ParamsFrom<'createOriginAccessControl', Record<string, never>>) => Promise<ReturnTypeFrom<'createOriginAccessControl'>>;
    createOriginRequestPolicy: (params: ParamsFrom<'createOriginRequestPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createOriginRequestPolicy'>>;
    createPublicKey: (params: ParamsFrom<'createPublicKey', Record<string, never>>) => Promise<ReturnTypeFrom<'createPublicKey'>>;
    createRealtimeLogConfig: (params: ParamsFrom<'createRealtimeLogConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'createRealtimeLogConfig'>>;
    createResponseHeadersPolicy: (params: ParamsFrom<'createResponseHeadersPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createResponseHeadersPolicy'>>;
    createStreamingDistribution: (params: ParamsFrom<'createStreamingDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'createStreamingDistribution'>>;
    createStreamingDistributionWithTags: (params: ParamsFrom<'createStreamingDistributionWithTags', Record<string, never>>) => Promise<ReturnTypeFrom<'createStreamingDistributionWithTags'>>;
    deleteCachePolicy: (params: ParamsFrom<'deleteCachePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCachePolicy'>>;
    deleteCloudFrontOriginAccessIdentity: (params: ParamsFrom<'deleteCloudFrontOriginAccessIdentity', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteCloudFrontOriginAccessIdentity'>>;
    deleteDistribution: (params: ParamsFrom<'deleteDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteDistribution'>>;
    deleteFieldLevelEncryptionConfig: (params: ParamsFrom<'deleteFieldLevelEncryptionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFieldLevelEncryptionConfig'>>;
    deleteFieldLevelEncryptionProfile: (params: ParamsFrom<'deleteFieldLevelEncryptionProfile', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFieldLevelEncryptionProfile'>>;
    deleteFunction: (params: ParamsFrom<'deleteFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFunction'>>;
    deleteKeyGroup: (params: ParamsFrom<'deleteKeyGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteKeyGroup'>>;
    deleteMonitoringSubscription: (params: ParamsFrom<'deleteMonitoringSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteMonitoringSubscription'>>;
    deleteOriginAccessControl: (params: ParamsFrom<'deleteOriginAccessControl', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteOriginAccessControl'>>;
    deleteOriginRequestPolicy: (params: ParamsFrom<'deleteOriginRequestPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteOriginRequestPolicy'>>;
    deletePublicKey: (params: ParamsFrom<'deletePublicKey', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePublicKey'>>;
    deleteRealtimeLogConfig: (params: ParamsFrom<'deleteRealtimeLogConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRealtimeLogConfig'>>;
    deleteResponseHeadersPolicy: (params: ParamsFrom<'deleteResponseHeadersPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteResponseHeadersPolicy'>>;
    deleteStreamingDistribution: (params: ParamsFrom<'deleteStreamingDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStreamingDistribution'>>;
    describeFunction: (params: ParamsFrom<'describeFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'describeFunction'>>;
    getCachePolicy: (params: ParamsFrom<'getCachePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getCachePolicy'>>;
    getCachePolicyConfig: (params: ParamsFrom<'getCachePolicyConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getCachePolicyConfig'>>;
    getCloudFrontOriginAccessIdentity: (params: ParamsFrom<'getCloudFrontOriginAccessIdentity', Record<string, never>>) => Promise<ReturnTypeFrom<'getCloudFrontOriginAccessIdentity'>>;
    getCloudFrontOriginAccessIdentityConfig: (params: ParamsFrom<'getCloudFrontOriginAccessIdentityConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getCloudFrontOriginAccessIdentityConfig'>>;
    getDistribution: (params: ParamsFrom<'getDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'getDistribution'>>;
    getDistributionConfig: (params: ParamsFrom<'getDistributionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getDistributionConfig'>>;
    getFieldLevelEncryption: (params: ParamsFrom<'getFieldLevelEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'getFieldLevelEncryption'>>;
    getFieldLevelEncryptionConfig: (params: ParamsFrom<'getFieldLevelEncryptionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getFieldLevelEncryptionConfig'>>;
    getFieldLevelEncryptionProfile: (params: ParamsFrom<'getFieldLevelEncryptionProfile', Record<string, never>>) => Promise<ReturnTypeFrom<'getFieldLevelEncryptionProfile'>>;
    getFieldLevelEncryptionProfileConfig: (params: ParamsFrom<'getFieldLevelEncryptionProfileConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getFieldLevelEncryptionProfileConfig'>>;
    getFunction: (params: ParamsFrom<'getFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'getFunction'>>;
    getInvalidation: (params: ParamsFrom<'getInvalidation', Record<string, never>>) => Promise<ReturnTypeFrom<'getInvalidation'>>;
    getKeyGroup: (params: ParamsFrom<'getKeyGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'getKeyGroup'>>;
    getKeyGroupConfig: (params: ParamsFrom<'getKeyGroupConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getKeyGroupConfig'>>;
    getMonitoringSubscription: (params: ParamsFrom<'getMonitoringSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'getMonitoringSubscription'>>;
    getOriginAccessControl: (params: ParamsFrom<'getOriginAccessControl', Record<string, never>>) => Promise<ReturnTypeFrom<'getOriginAccessControl'>>;
    getOriginAccessControlConfig: (params: ParamsFrom<'getOriginAccessControlConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getOriginAccessControlConfig'>>;
    getOriginRequestPolicy: (params: ParamsFrom<'getOriginRequestPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getOriginRequestPolicy'>>;
    getOriginRequestPolicyConfig: (params: ParamsFrom<'getOriginRequestPolicyConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getOriginRequestPolicyConfig'>>;
    getPublicKey: (params: ParamsFrom<'getPublicKey', Record<string, never>>) => Promise<ReturnTypeFrom<'getPublicKey'>>;
    getPublicKeyConfig: (params: ParamsFrom<'getPublicKeyConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getPublicKeyConfig'>>;
    getRealtimeLogConfig: (params: ParamsFrom<'getRealtimeLogConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getRealtimeLogConfig'>>;
    getResponseHeadersPolicy: (params: ParamsFrom<'getResponseHeadersPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getResponseHeadersPolicy'>>;
    getResponseHeadersPolicyConfig: (params: ParamsFrom<'getResponseHeadersPolicyConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getResponseHeadersPolicyConfig'>>;
    getStreamingDistribution: (params: ParamsFrom<'getStreamingDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'getStreamingDistribution'>>;
    getStreamingDistributionConfig: (params: ParamsFrom<'getStreamingDistributionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'getStreamingDistributionConfig'>>;
    listCachePolicies: (params: ParamsFrom<'listCachePolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'listCachePolicies'>>;
    listCloudFrontOriginAccessIdentities(params: {
        [K in keyof ParamsFrom<'listCloudFrontOriginAccessIdentities', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listCloudFrontOriginAccessIdentities', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listCloudFrontOriginAccessIdentities'>]-?: ReturnTypeFrom<'listCloudFrontOriginAccessIdentities'>[K];
        }['CloudFrontOriginAccessIdentityList']['Items'];
    }>;
    listConflictingAliases: (params: ParamsFrom<'listConflictingAliases', Record<string, never>>) => Promise<ReturnTypeFrom<'listConflictingAliases'>>;
    listDistributions(params: {
        [K in keyof ParamsFrom<'listDistributions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDistributions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDistributions'>]-?: ReturnTypeFrom<'listDistributions'>[K];
        }['DistributionList']['Items'];
    }>;
    listDistributionsByCachePolicyId: (params: ParamsFrom<'listDistributionsByCachePolicyId', Record<string, never>>) => Promise<ReturnTypeFrom<'listDistributionsByCachePolicyId'>>;
    listDistributionsByKeyGroup: (params: ParamsFrom<'listDistributionsByKeyGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'listDistributionsByKeyGroup'>>;
    listDistributionsByOriginRequestPolicyId: (params: ParamsFrom<'listDistributionsByOriginRequestPolicyId', Record<string, never>>) => Promise<ReturnTypeFrom<'listDistributionsByOriginRequestPolicyId'>>;
    listDistributionsByRealtimeLogConfig: (params: ParamsFrom<'listDistributionsByRealtimeLogConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'listDistributionsByRealtimeLogConfig'>>;
    listDistributionsByResponseHeadersPolicyId: (params: ParamsFrom<'listDistributionsByResponseHeadersPolicyId', Record<string, never>>) => Promise<ReturnTypeFrom<'listDistributionsByResponseHeadersPolicyId'>>;
    listDistributionsByWebACLId: (params: ParamsFrom<'listDistributionsByWebACLId', Record<string, never>>) => Promise<ReturnTypeFrom<'listDistributionsByWebACLId'>>;
    listFieldLevelEncryptionConfigs: (params: ParamsFrom<'listFieldLevelEncryptionConfigs', Record<string, never>>) => Promise<ReturnTypeFrom<'listFieldLevelEncryptionConfigs'>>;
    listFieldLevelEncryptionProfiles: (params: ParamsFrom<'listFieldLevelEncryptionProfiles', Record<string, never>>) => Promise<ReturnTypeFrom<'listFieldLevelEncryptionProfiles'>>;
    listFunctions: (params: ParamsFrom<'listFunctions', Record<string, never>>) => Promise<ReturnTypeFrom<'listFunctions'>>;
    listInvalidations(params: {
        [K in keyof ParamsFrom<'listInvalidations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listInvalidations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listInvalidations'>]-?: ReturnTypeFrom<'listInvalidations'>[K];
        }['InvalidationList']['Items'];
    }>;
    listKeyGroups: (params: ParamsFrom<'listKeyGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'listKeyGroups'>>;
    listOriginAccessControls: (params: ParamsFrom<'listOriginAccessControls', Record<string, never>>) => Promise<ReturnTypeFrom<'listOriginAccessControls'>>;
    listOriginRequestPolicies: (params: ParamsFrom<'listOriginRequestPolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'listOriginRequestPolicies'>>;
    listPublicKeys: (params: ParamsFrom<'listPublicKeys', Record<string, never>>) => Promise<ReturnTypeFrom<'listPublicKeys'>>;
    listRealtimeLogConfigs: (params: ParamsFrom<'listRealtimeLogConfigs', Record<string, never>>) => Promise<ReturnTypeFrom<'listRealtimeLogConfigs'>>;
    listResponseHeadersPolicies: (params: ParamsFrom<'listResponseHeadersPolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'listResponseHeadersPolicies'>>;
    listStreamingDistributions(params: {
        [K in keyof ParamsFrom<'listStreamingDistributions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStreamingDistributions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStreamingDistributions'>]-?: ReturnTypeFrom<'listStreamingDistributions'>[K];
        }['StreamingDistributionList']['Items'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    publishFunction: (params: ParamsFrom<'publishFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'publishFunction'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    testFunction: (params: ParamsFrom<'testFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'testFunction'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateCachePolicy: (params: ParamsFrom<'updateCachePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateCachePolicy'>>;
    updateCloudFrontOriginAccessIdentity: (params: ParamsFrom<'updateCloudFrontOriginAccessIdentity', Record<string, never>>) => Promise<ReturnTypeFrom<'updateCloudFrontOriginAccessIdentity'>>;
    updateDistribution: (params: ParamsFrom<'updateDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'updateDistribution'>>;
    updateFieldLevelEncryptionConfig: (params: ParamsFrom<'updateFieldLevelEncryptionConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFieldLevelEncryptionConfig'>>;
    updateFieldLevelEncryptionProfile: (params: ParamsFrom<'updateFieldLevelEncryptionProfile', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFieldLevelEncryptionProfile'>>;
    updateFunction: (params: ParamsFrom<'updateFunction', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFunction'>>;
    updateKeyGroup: (params: ParamsFrom<'updateKeyGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'updateKeyGroup'>>;
    updateOriginAccessControl: (params: ParamsFrom<'updateOriginAccessControl', Record<string, never>>) => Promise<ReturnTypeFrom<'updateOriginAccessControl'>>;
    updateOriginRequestPolicy: (params: ParamsFrom<'updateOriginRequestPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateOriginRequestPolicy'>>;
    updatePublicKey: (params: ParamsFrom<'updatePublicKey', Record<string, never>>) => Promise<ReturnTypeFrom<'updatePublicKey'>>;
    updateRealtimeLogConfig: (params: ParamsFrom<'updateRealtimeLogConfig', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRealtimeLogConfig'>>;
    updateResponseHeadersPolicy: (params: ParamsFrom<'updateResponseHeadersPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateResponseHeadersPolicy'>>;
    updateStreamingDistribution: (params: ParamsFrom<'updateStreamingDistribution', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStreamingDistribution'>>;
    static fromClient(client: AWSCloudFront): CloudFront;
    static client(options?: AWSCloudFront.Types.ClientConfiguration): CloudFront;
}
export {};
