import { Request, Shield as AWSShield } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSShield> = AWSShield[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSShield, Extras> = AWSShield[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Shield {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "shield";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly ["listAttacks", "listProtectionGroups", "listProtections"];
    associateDRTLogBucket: (params: ParamsFrom<'associateDRTLogBucket', Record<string, never>>) => Promise<ReturnTypeFrom<'associateDRTLogBucket'>>;
    associateDRTRole: (params: ParamsFrom<'associateDRTRole', Record<string, never>>) => Promise<ReturnTypeFrom<'associateDRTRole'>>;
    associateHealthCheck: (params: ParamsFrom<'associateHealthCheck', Record<string, never>>) => Promise<ReturnTypeFrom<'associateHealthCheck'>>;
    associateProactiveEngagementDetails: (params: ParamsFrom<'associateProactiveEngagementDetails', Record<string, never>>) => Promise<ReturnTypeFrom<'associateProactiveEngagementDetails'>>;
    createProtection: (params: ParamsFrom<'createProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'createProtection'>>;
    createProtectionGroup: (params: ParamsFrom<'createProtectionGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createProtectionGroup'>>;
    createSubscription: (params: ParamsFrom<'createSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'createSubscription'>>;
    deleteProtection: (params: ParamsFrom<'deleteProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteProtection'>>;
    deleteProtectionGroup: (params: ParamsFrom<'deleteProtectionGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteProtectionGroup'>>;
    deleteSubscription: (params: ParamsFrom<'deleteSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSubscription'>>;
    describeAttack: (params: ParamsFrom<'describeAttack', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAttack'>>;
    describeAttackStatistics: (params: ParamsFrom<'describeAttackStatistics', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAttackStatistics'>>;
    describeDRTAccess: (params: ParamsFrom<'describeDRTAccess', Record<string, never>>) => Promise<ReturnTypeFrom<'describeDRTAccess'>>;
    describeEmergencyContactSettings: (params: ParamsFrom<'describeEmergencyContactSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'describeEmergencyContactSettings'>>;
    describeProtection: (params: ParamsFrom<'describeProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'describeProtection'>>;
    describeProtectionGroup: (params: ParamsFrom<'describeProtectionGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'describeProtectionGroup'>>;
    describeSubscription: (params: ParamsFrom<'describeSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSubscription'>>;
    disableApplicationLayerAutomaticResponse: (params: ParamsFrom<'disableApplicationLayerAutomaticResponse', Record<string, never>>) => Promise<ReturnTypeFrom<'disableApplicationLayerAutomaticResponse'>>;
    disableProactiveEngagement: (params: ParamsFrom<'disableProactiveEngagement', Record<string, never>>) => Promise<ReturnTypeFrom<'disableProactiveEngagement'>>;
    disassociateDRTLogBucket: (params: ParamsFrom<'disassociateDRTLogBucket', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateDRTLogBucket'>>;
    disassociateDRTRole: (params: ParamsFrom<'disassociateDRTRole', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateDRTRole'>>;
    disassociateHealthCheck: (params: ParamsFrom<'disassociateHealthCheck', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateHealthCheck'>>;
    enableApplicationLayerAutomaticResponse: (params: ParamsFrom<'enableApplicationLayerAutomaticResponse', Record<string, never>>) => Promise<ReturnTypeFrom<'enableApplicationLayerAutomaticResponse'>>;
    enableProactiveEngagement: (params: ParamsFrom<'enableProactiveEngagement', Record<string, never>>) => Promise<ReturnTypeFrom<'enableProactiveEngagement'>>;
    getSubscriptionState: (params: ParamsFrom<'getSubscriptionState', Record<string, never>>) => Promise<ReturnTypeFrom<'getSubscriptionState'>>;
    listAttacks(params: {
        [K in keyof ParamsFrom<'listAttacks', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listAttacks', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listAttacks'>]-?: ReturnTypeFrom<'listAttacks'>[K];
        }['AttackSummaries'];
    }>;
    listProtectionGroups: (params: ParamsFrom<'listProtectionGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'listProtectionGroups'>>;
    listProtections(params: {
        [K in keyof ParamsFrom<'listProtections', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listProtections', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listProtections'>]-?: ReturnTypeFrom<'listProtections'>[K];
        }['Protections'];
    }>;
    listResourcesInProtectionGroup: (params: ParamsFrom<'listResourcesInProtectionGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'listResourcesInProtectionGroup'>>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateApplicationLayerAutomaticResponse: (params: ParamsFrom<'updateApplicationLayerAutomaticResponse', Record<string, never>>) => Promise<ReturnTypeFrom<'updateApplicationLayerAutomaticResponse'>>;
    updateEmergencyContactSettings: (params: ParamsFrom<'updateEmergencyContactSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'updateEmergencyContactSettings'>>;
    updateProtectionGroup: (params: ParamsFrom<'updateProtectionGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'updateProtectionGroup'>>;
    updateSubscription: (params: ParamsFrom<'updateSubscription', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSubscription'>>;
    static fromClient(client: AWSShield): Shield;
    static client(options?: AWSShield.Types.ClientConfiguration): Shield;
}
export {};
