import { Request, NetworkFirewall as AWSNetworkFirewall } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSNetworkFirewall> = AWSNetworkFirewall[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSNetworkFirewall, Extras> = AWSNetworkFirewall[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class NetworkFirewall {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "network-firewall";
    readonly global: false;
    readonly category: "Security, Identity & Compliance";
    readonly topLevelCalls: readonly ["listFirewallPolicies", "listFirewalls", "listRuleGroups"];
    associateFirewallPolicy: (params: ParamsFrom<'associateFirewallPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'associateFirewallPolicy'>>;
    associateSubnets: (params: ParamsFrom<'associateSubnets', Record<string, never>>) => Promise<ReturnTypeFrom<'associateSubnets'>>;
    createFirewall: (params: ParamsFrom<'createFirewall', Record<string, never>>) => Promise<ReturnTypeFrom<'createFirewall'>>;
    createFirewallPolicy: (params: ParamsFrom<'createFirewallPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createFirewallPolicy'>>;
    createRuleGroup: (params: ParamsFrom<'createRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createRuleGroup'>>;
    deleteFirewall: (params: ParamsFrom<'deleteFirewall', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFirewall'>>;
    deleteFirewallPolicy: (params: ParamsFrom<'deleteFirewallPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFirewallPolicy'>>;
    deleteResourcePolicy: (params: ParamsFrom<'deleteResourcePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteResourcePolicy'>>;
    deleteRuleGroup: (params: ParamsFrom<'deleteRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRuleGroup'>>;
    describeFirewall: (params: ParamsFrom<'describeFirewall', Record<string, never>>) => Promise<ReturnTypeFrom<'describeFirewall'>>;
    describeFirewallPolicy: (params: ParamsFrom<'describeFirewallPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'describeFirewallPolicy'>>;
    describeLoggingConfiguration: (params: ParamsFrom<'describeLoggingConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLoggingConfiguration'>>;
    describeResourcePolicy: (params: ParamsFrom<'describeResourcePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'describeResourcePolicy'>>;
    describeRuleGroup: (params: ParamsFrom<'describeRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRuleGroup'>>;
    describeRuleGroupMetadata: (params: ParamsFrom<'describeRuleGroupMetadata', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRuleGroupMetadata'>>;
    disassociateSubnets: (params: ParamsFrom<'disassociateSubnets', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateSubnets'>>;
    listFirewallPolicies(params: {
        [K in keyof ParamsFrom<'listFirewallPolicies', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFirewallPolicies', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFirewallPolicies'>]-?: ReturnTypeFrom<'listFirewallPolicies'>[K];
        }['FirewallPolicies'];
    }>;
    listFirewalls(params: {
        [K in keyof ParamsFrom<'listFirewalls', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFirewalls', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFirewalls'>]-?: ReturnTypeFrom<'listFirewalls'>[K];
        }['Firewalls'];
    }>;
    listRuleGroups(params: {
        [K in keyof ParamsFrom<'listRuleGroups', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRuleGroups', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRuleGroups'>]-?: ReturnTypeFrom<'listRuleGroups'>[K];
        }['RuleGroups'];
    }>;
    listTagsForResource(params: {
        [K in keyof ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTagsForResource'>]-?: ReturnTypeFrom<'listTagsForResource'>[K];
        }['Tags'];
    }>;
    putResourcePolicy: (params: ParamsFrom<'putResourcePolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putResourcePolicy'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateFirewallDeleteProtection: (params: ParamsFrom<'updateFirewallDeleteProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFirewallDeleteProtection'>>;
    updateFirewallDescription: (params: ParamsFrom<'updateFirewallDescription', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFirewallDescription'>>;
    updateFirewallEncryptionConfiguration: (params: ParamsFrom<'updateFirewallEncryptionConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFirewallEncryptionConfiguration'>>;
    updateFirewallPolicy: (params: ParamsFrom<'updateFirewallPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFirewallPolicy'>>;
    updateFirewallPolicyChangeProtection: (params: ParamsFrom<'updateFirewallPolicyChangeProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFirewallPolicyChangeProtection'>>;
    updateLoggingConfiguration: (params: ParamsFrom<'updateLoggingConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLoggingConfiguration'>>;
    updateRuleGroup: (params: ParamsFrom<'updateRuleGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRuleGroup'>>;
    updateSubnetChangeProtection: (params: ParamsFrom<'updateSubnetChangeProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSubnetChangeProtection'>>;
    static fromClient(client: AWSNetworkFirewall): NetworkFirewall;
    static client(options?: AWSNetworkFirewall.Types.ClientConfiguration): NetworkFirewall;
}
export {};
