import { CfnResource, Resolvable } from '../../base';
export declare type RuleGroup_Type = 'AWS::NetworkFirewall::RuleGroup';
export declare const RuleGroup_Type = "AWS::NetworkFirewall::RuleGroup";
/**
 * Resource type definition for AWS::NetworkFirewall::RuleGroup {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html}
 */
export default function RuleGroup(props: RuleGroup_Properties): CfnResource<RuleGroup_Properties>;
/**
 * Resource type definition for AWS::NetworkFirewall::RuleGroup {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html}
 */
export declare type RuleGroup_Properties = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroupname}
     */
    RuleGroupName: Resolvable<string>;
    RuleGroupArn?: ResourceArn;
    RuleGroupId?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup}
     */
    RuleGroup?: RuleGroup;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-type}
     */
    Type: Resolvable<'STATELESS' | 'STATEFUL'>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-capacity}
     */
    Capacity: Resolvable<number>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-description}
     */
    Description?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-tags}
     */
    Tags?: Tag[];
};
export declare type ResourceArn = Resolvable<string>;
export declare type Tag = {
    Key: Resolvable<string>;
    Value: Resolvable<string>;
};
export declare type RulesString = Resolvable<string>;
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html}
 */
export declare type RuleGroup = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-rulevariables}
     */
    RuleVariables?: RuleVariables;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-rulessource}
     */
    RulesSource: RulesSource;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-statefulruleoptions}
     */
    StatefulRuleOptions?: StatefulRuleOptions;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html}
 */
export declare type RuleVariables = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html#cfn-networkfirewall-rulegroup-rulevariables-ipsets}
     */
    IPSets?: {
        [k: string]: IPSet;
    };
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html#cfn-networkfirewall-rulegroup-rulevariables-portsets}
     */
    PortSets?: {
        [k: string]: PortSet;
    };
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html}
 */
export declare type IPSet = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html#cfn-networkfirewall-rulegroup-ipset-definition}
     */
    Definition?: VariableDefinition[];
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html}
 */
export declare type PortSet = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html#cfn-networkfirewall-rulegroup-portset-definition}
     */
    Definition?: VariableDefinition[];
};
export declare type VariableDefinition = Resolvable<string>;
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html}
 */
export declare type RulesSource = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-rulesstring}
     */
    RulesString?: RulesString;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-rulessourcelist}
     */
    RulesSourceList?: RulesSourceList;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-statefulrules}
     */
    StatefulRules?: StatefulRule[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-statelessrulesandcustomactions}
     */
    StatelessRulesAndCustomActions?: StatelessRulesAndCustomActions;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html}
 */
export declare type RulesSourceList = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-targets}
     */
    Targets: Resolvable<string>[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-targettypes}
     */
    TargetTypes: TargetType[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-generatedrulestype}
     */
    GeneratedRulesType: GeneratedRulesType;
};
export declare type TargetType = Resolvable<'TLS_SNI' | 'HTTP_HOST'>;
export declare type GeneratedRulesType = Resolvable<'ALLOWLIST' | 'DENYLIST'>;
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html}
 */
export declare type StatefulRule = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html#cfn-networkfirewall-rulegroup-statefulrule-action}
     */
    Action: Resolvable<'PASS' | 'DROP' | 'ALERT'>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html#cfn-networkfirewall-rulegroup-statefulrule-header}
     */
    Header: Header;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html#cfn-networkfirewall-rulegroup-statefulrule-ruleoptions}
     */
    RuleOptions: RuleOption[];
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html}
 */
export declare type Header = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-protocol}
     */
    Protocol: Resolvable<'IP' | 'TCP' | 'UDP' | 'ICMP' | 'HTTP' | 'FTP' | 'TLS' | 'SMB' | 'DNS' | 'DCERPC' | 'SSH' | 'SMTP' | 'IMAP' | 'MSN' | 'KRB5' | 'IKEV2' | 'TFTP' | 'NTP' | 'DHCP'>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-source}
     */
    Source: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-sourceport}
     */
    SourcePort: Port;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-direction}
     */
    Direction: Resolvable<'FORWARD' | 'ANY'>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-destination}
     */
    Destination: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-destinationport}
     */
    DestinationPort: Port;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html}
 */
export declare type RuleOption = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html#cfn-networkfirewall-rulegroup-ruleoption-keyword}
     */
    Keyword: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html#cfn-networkfirewall-rulegroup-ruleoption-settings}
     */
    Settings?: Setting[];
};
export declare type Setting = Resolvable<string>;
export declare type Port = Resolvable<string>;
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html}
 */
export declare type StatelessRulesAndCustomActions = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html#cfn-networkfirewall-rulegroup-statelessrulesandcustomactions-statelessrules}
     */
    StatelessRules: StatelessRule[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html#cfn-networkfirewall-rulegroup-statelessrulesandcustomactions-customactions}
     */
    CustomActions?: CustomAction[];
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html}
 */
export declare type StatelessRule = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html#cfn-networkfirewall-rulegroup-statelessrule-ruledefinition}
     */
    RuleDefinition: RuleDefinition;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html#cfn-networkfirewall-rulegroup-statelessrule-priority}
     */
    Priority: Resolvable<number>;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html}
 */
export declare type RuleDefinition = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html#cfn-networkfirewall-rulegroup-ruledefinition-matchattributes}
     */
    MatchAttributes: MatchAttributes;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html#cfn-networkfirewall-rulegroup-ruledefinition-actions}
     */
    Actions: Resolvable<string>[];
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html}
 */
export declare type MatchAttributes = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-sources}
     */
    Sources?: Address[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-destinations}
     */
    Destinations?: Address[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-sourceports}
     */
    SourcePorts?: PortRange[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-destinationports}
     */
    DestinationPorts?: PortRange[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-protocols}
     */
    Protocols?: ProtocolNumber[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-tcpflags}
     */
    TCPFlags?: TCPFlagField[];
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html}
 */
export declare type Address = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html#cfn-networkfirewall-rulegroup-address-addressdefinition}
     */
    AddressDefinition: Resolvable<string>;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html}
 */
export declare type PortRange = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html#cfn-networkfirewall-rulegroup-portrange-fromport}
     */
    FromPort: PortRangeBound;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html#cfn-networkfirewall-rulegroup-portrange-toport}
     */
    ToPort: PortRangeBound;
};
export declare type PortRangeBound = Resolvable<number>;
export declare type ProtocolNumber = Resolvable<number>;
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html}
 */
export declare type TCPFlagField = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html#cfn-networkfirewall-rulegroup-tcpflagfield-flags}
     */
    Flags: TCPFlag[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html#cfn-networkfirewall-rulegroup-tcpflagfield-masks}
     */
    Masks?: TCPFlag[];
};
export declare type TCPFlag = Resolvable<'FIN' | 'SYN' | 'RST' | 'PSH' | 'ACK' | 'URG' | 'ECE' | 'CWR'>;
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html}
 */
export declare type CustomAction = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html#cfn-networkfirewall-rulegroup-customaction-actionname}
     */
    ActionName: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html#cfn-networkfirewall-rulegroup-customaction-actiondefinition}
     */
    ActionDefinition: ActionDefinition;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html}
 */
export declare type ActionDefinition = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html#cfn-networkfirewall-rulegroup-actiondefinition-publishmetricaction}
     */
    PublishMetricAction?: PublishMetricAction;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html}
 */
export declare type PublishMetricAction = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html#cfn-networkfirewall-rulegroup-publishmetricaction-dimensions}
     */
    Dimensions: Dimension[];
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html}
 */
export declare type Dimension = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html#cfn-networkfirewall-rulegroup-dimension-value}
     */
    Value: Resolvable<string>;
};
/**
 * {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html}
 */
export declare type StatefulRuleOptions = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html#cfn-networkfirewall-rulegroup-statefulruleoptions-ruleorder}
     */
    RuleOrder?: RuleOrder;
};
export declare type RuleOrder = Resolvable<'DEFAULT_ACTION_ORDER' | 'STRICT_ORDER'>;
