import * as cdk from 'aws-cdk-lib';
import { CfnFirewall, CfnRuleGroup } from 'aws-cdk-lib/aws-networkfirewall';
import { Construct } from 'constructs';
export interface INetworkFirewallDistributedConstructProps {
    readonly vpc: cdk.aws_ec2.IVpc;
    readonly subnetList: Array<cdk.aws_ec2.ISubnet>;
}
export interface INetworkFirewall {
    addStatelessRuleGroup(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
    addStatefulRule(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
    addStatefulRules(rules: Array<cdk.aws_networkfirewall.CfnRuleGroup>): INetworkFirewall;
    buildFirewall(): CfnFirewall;
}
export declare class NetworkFirewallDistributedConstruct extends Construct implements INetworkFirewall {
    private vpc;
    private subnetList;
    private statefulRuleGroups;
    private statelessRulesGroups;
    constructor(scope: Construct, id: string, props: INetworkFirewallDistributedConstructProps);
    addStatelessRuleGroup(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
    addStatefulRule(rule: cdk.aws_networkfirewall.CfnRuleGroup): INetworkFirewall;
    addStatefulRules(rules: Array<cdk.aws_networkfirewall.CfnRuleGroup>): INetworkFirewall;
    buildFirewall(): CfnFirewall;
}
export declare class NetworkFirewallRulesBuilder {
    static statefulRulesSourcePropertyFromFile(scope: Construct, filenameList: Array<string>): Array<CfnRuleGroup>;
    static statelessRulesAllowedPorts(scope: Construct): cdk.aws_networkfirewall.CfnRuleGroup;
}
