import { Request, WAFV2 as AWSWAFV2 } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSWAFV2> = AWSWAFV2[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSWAFV2, Extras> = AWSWAFV2[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class WAFV2 {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "wafv2";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly [];
    associateWebACL: (params: ParamsFrom<'associateWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'associateWebACL'>>;
    checkCapacity: (params: ParamsFrom<'checkCapacity', Record<string, never>>) => Promise<ReturnTypeFrom<'checkCapacity'>>;
    createIPSet: (params: ParamsFrom<'createIPSet', Record<string, never>>) => Promise<ReturnTypeFrom<'createIPSet'>>;
    createRegexPatternSet: (params: ParamsFrom<'createRegexPatternSet', Record<string, never>>) => Promise<ReturnTypeFrom<'createRegexPatternSet'>>;
    createRuleGroup: (params: ParamsFrom<'createRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createRuleGroup'>>;
    createWebACL: (params: ParamsFrom<'createWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'createWebACL'>>;
    deleteFirewallManagerRuleGroups: (params: ParamsFrom<'deleteFirewallManagerRuleGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFirewallManagerRuleGroups'>>;
    deleteIPSet: (params: ParamsFrom<'deleteIPSet', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteIPSet'>>;
    deleteLoggingConfiguration: (params: ParamsFrom<'deleteLoggingConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLoggingConfiguration'>>;
    deletePermissionPolicy: (params: ParamsFrom<'deletePermissionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePermissionPolicy'>>;
    deleteRegexPatternSet: (params: ParamsFrom<'deleteRegexPatternSet', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRegexPatternSet'>>;
    deleteRuleGroup: (params: ParamsFrom<'deleteRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRuleGroup'>>;
    deleteWebACL: (params: ParamsFrom<'deleteWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteWebACL'>>;
    describeManagedRuleGroup: (params: ParamsFrom<'describeManagedRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'describeManagedRuleGroup'>>;
    disassociateWebACL: (params: ParamsFrom<'disassociateWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateWebACL'>>;
    generateMobileSdkReleaseUrl: (params: ParamsFrom<'generateMobileSdkReleaseUrl', Record<string, never>>) => Promise<ReturnTypeFrom<'generateMobileSdkReleaseUrl'>>;
    getIPSet: (params: ParamsFrom<'getIPSet', Record<string, never>>) => Promise<ReturnTypeFrom<'getIPSet'>>;
    getLoggingConfiguration: (params: ParamsFrom<'getLoggingConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getLoggingConfiguration'>>;
    getManagedRuleSet: (params: ParamsFrom<'getManagedRuleSet', Record<string, never>>) => Promise<ReturnTypeFrom<'getManagedRuleSet'>>;
    getMobileSdkRelease: (params: ParamsFrom<'getMobileSdkRelease', Record<string, never>>) => Promise<ReturnTypeFrom<'getMobileSdkRelease'>>;
    getPermissionPolicy: (params: ParamsFrom<'getPermissionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getPermissionPolicy'>>;
    getRateBasedStatementManagedKeys: (params: ParamsFrom<'getRateBasedStatementManagedKeys', Record<string, never>>) => Promise<ReturnTypeFrom<'getRateBasedStatementManagedKeys'>>;
    getRegexPatternSet: (params: ParamsFrom<'getRegexPatternSet', Record<string, never>>) => Promise<ReturnTypeFrom<'getRegexPatternSet'>>;
    getRuleGroup: (params: ParamsFrom<'getRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'getRuleGroup'>>;
    getSampledRequests: (params: ParamsFrom<'getSampledRequests', Record<string, never>>) => Promise<ReturnTypeFrom<'getSampledRequests'>>;
    getWebACL: (params: ParamsFrom<'getWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'getWebACL'>>;
    getWebACLForResource: (params: ParamsFrom<'getWebACLForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'getWebACLForResource'>>;
    listAvailableManagedRuleGroupVersions: (params: ParamsFrom<'listAvailableManagedRuleGroupVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'listAvailableManagedRuleGroupVersions'>>;
    listAvailableManagedRuleGroups: (params: ParamsFrom<'listAvailableManagedRuleGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'listAvailableManagedRuleGroups'>>;
    listIPSets: (params: ParamsFrom<'listIPSets', Record<string, never>>) => Promise<ReturnTypeFrom<'listIPSets'>>;
    listLoggingConfigurations: (params: ParamsFrom<'listLoggingConfigurations', Record<string, never>>) => Promise<ReturnTypeFrom<'listLoggingConfigurations'>>;
    listManagedRuleSets: (params: ParamsFrom<'listManagedRuleSets', Record<string, never>>) => Promise<ReturnTypeFrom<'listManagedRuleSets'>>;
    listMobileSdkReleases: (params: ParamsFrom<'listMobileSdkReleases', Record<string, never>>) => Promise<ReturnTypeFrom<'listMobileSdkReleases'>>;
    listRegexPatternSets: (params: ParamsFrom<'listRegexPatternSets', Record<string, never>>) => Promise<ReturnTypeFrom<'listRegexPatternSets'>>;
    listResourcesForWebACL: (params: ParamsFrom<'listResourcesForWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'listResourcesForWebACL'>>;
    listRuleGroups: (params: ParamsFrom<'listRuleGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'listRuleGroups'>>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    listWebACLs: (params: ParamsFrom<'listWebACLs', Record<string, never>>) => Promise<ReturnTypeFrom<'listWebACLs'>>;
    putLoggingConfiguration: (params: ParamsFrom<'putLoggingConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putLoggingConfiguration'>>;
    putManagedRuleSetVersions: (params: ParamsFrom<'putManagedRuleSetVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'putManagedRuleSetVersions'>>;
    putPermissionPolicy: (params: ParamsFrom<'putPermissionPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putPermissionPolicy'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateIPSet: (params: ParamsFrom<'updateIPSet', Record<string, never>>) => Promise<ReturnTypeFrom<'updateIPSet'>>;
    updateManagedRuleSetVersionExpiryDate: (params: ParamsFrom<'updateManagedRuleSetVersionExpiryDate', Record<string, never>>) => Promise<ReturnTypeFrom<'updateManagedRuleSetVersionExpiryDate'>>;
    updateRegexPatternSet: (params: ParamsFrom<'updateRegexPatternSet', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRegexPatternSet'>>;
    updateRuleGroup: (params: ParamsFrom<'updateRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRuleGroup'>>;
    updateWebACL: (params: ParamsFrom<'updateWebACL', Record<string, never>>) => Promise<ReturnTypeFrom<'updateWebACL'>>;
    static fromClient(client: AWSWAFV2): WAFV2;
    static client(options?: AWSWAFV2.Types.ClientConfiguration): WAFV2;
}
export {};
