import * as core from "@terrascript/core";
export interface CustomResponseBodyArgs extends core.SchemaArgs {
    content: string | core.StringOut;
    contentType: string | core.StringOut;
    key: string | core.StringOut;
}
export declare class CustomResponseBody extends core.Schema<CustomResponseBodyArgs> {
    content: string | core.StringOut;
    contentType: string | core.StringOut;
    key: string | core.StringOut;
}
export interface InsertHeaderArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class InsertHeader extends core.Schema<InsertHeaderArgs> {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export interface CustomRequestHandlingArgs extends core.SchemaArgs {
    insertHeader: core.Array<InsertHeader> | core.ArrayOut<InsertHeader>;
}
export declare class CustomRequestHandling extends core.Schema<CustomRequestHandlingArgs> {
    insertHeader: core.Array<InsertHeader> | core.ArrayOut<InsertHeader>;
}
export interface AllowArgs extends core.SchemaArgs {
    customRequestHandling?: CustomRequestHandling;
}
export declare class Allow extends core.Schema<AllowArgs> {
    customRequestHandling?: CustomRequestHandling;
}
export interface ResponseHeaderArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class ResponseHeader extends core.Schema<ResponseHeaderArgs> {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export interface CustomResponseArgs extends core.SchemaArgs {
    customResponseBodyKey?: string | core.StringOut;
    responseCode: number | core.NumberOut;
    responseHeader?: core.Array<ResponseHeader> | core.ArrayOut<ResponseHeader>;
}
export declare class CustomResponse extends core.Schema<CustomResponseArgs> {
    customResponseBodyKey?: string | core.StringOut;
    responseCode: number | core.NumberOut;
    responseHeader?: core.Array<ResponseHeader> | core.ArrayOut<ResponseHeader>;
}
export interface BlockArgs extends core.SchemaArgs {
    customResponse?: CustomResponse;
}
export declare class Block extends core.Schema<BlockArgs> {
    customResponse?: CustomResponse;
}
export interface DefaultActionArgs extends core.SchemaArgs {
    allow?: Allow;
    block?: Block;
}
export declare class DefaultAction extends core.Schema<DefaultActionArgs> {
    allow?: Allow;
    block?: Block;
}
export interface ForwardedIpConfigArgs extends core.SchemaArgs {
    fallbackBehavior: string | core.StringOut;
    headerName: string | core.StringOut;
}
export declare class ForwardedIpConfig extends core.Schema<ForwardedIpConfigArgs> {
    fallbackBehavior: string | core.StringOut;
    headerName: string | core.StringOut;
}
export interface GeoMatchStatementArgs extends core.SchemaArgs {
    countryCodes: core.Array<string> | core.ArrayOut<core.StringOut>;
    forwardedIpConfig?: ForwardedIpConfig;
}
export declare class GeoMatchStatement extends core.Schema<GeoMatchStatementArgs> {
    countryCodes: core.Array<string> | core.ArrayOut<core.StringOut>;
    forwardedIpConfig?: ForwardedIpConfig;
}
export interface QueryStringArgs extends core.SchemaArgs {
}
export declare class QueryString extends core.Schema<QueryStringArgs> {
}
export interface SingleHeaderArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class SingleHeader extends core.Schema<SingleHeaderArgs> {
    name: string | core.StringOut;
}
export interface SingleQueryArgumentArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class SingleQueryArgument extends core.Schema<SingleQueryArgumentArgs> {
    name: string | core.StringOut;
}
export interface UriPathArgs extends core.SchemaArgs {
}
export declare class UriPath extends core.Schema<UriPathArgs> {
}
export interface AllQueryArgumentsArgs extends core.SchemaArgs {
}
export declare class AllQueryArguments extends core.Schema<AllQueryArgumentsArgs> {
}
export interface BodyArgs extends core.SchemaArgs {
}
export declare class Body extends core.Schema<BodyArgs> {
}
export interface MethodArgs extends core.SchemaArgs {
}
export declare class Method extends core.Schema<MethodArgs> {
}
export interface FieldToMatchArgs extends core.SchemaArgs {
    allQueryArguments?: AllQueryArguments;
    body?: Body;
    method?: Method;
    queryString?: QueryString;
    singleHeader?: SingleHeader;
    singleQueryArgument?: SingleQueryArgument;
    uriPath?: UriPath;
}
export declare class FieldToMatch extends core.Schema<FieldToMatchArgs> {
    allQueryArguments?: AllQueryArguments;
    body?: Body;
    method?: Method;
    queryString?: QueryString;
    singleHeader?: SingleHeader;
    singleQueryArgument?: SingleQueryArgument;
    uriPath?: UriPath;
}
export interface TextTransformationArgs extends core.SchemaArgs {
    priority: number | core.NumberOut;
    type: string | core.StringOut;
}
export declare class TextTransformation extends core.Schema<TextTransformationArgs> {
    priority: number | core.NumberOut;
    type: string | core.StringOut;
}
export interface RegexPatternSetReferenceStatementArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    fieldToMatch?: FieldToMatch;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export declare class RegexPatternSetReferenceStatement extends core.Schema<RegexPatternSetReferenceStatementArgs> {
    arn: string | core.StringOut;
    fieldToMatch?: FieldToMatch;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export interface IpSetForwardedIpConfigArgs extends core.SchemaArgs {
    fallbackBehavior: string | core.StringOut;
    headerName: string | core.StringOut;
    position: string | core.StringOut;
}
export declare class IpSetForwardedIpConfig extends core.Schema<IpSetForwardedIpConfigArgs> {
    fallbackBehavior: string | core.StringOut;
    headerName: string | core.StringOut;
    position: string | core.StringOut;
}
export interface IpSetReferenceStatementArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    ipSetForwardedIpConfig?: IpSetForwardedIpConfig;
}
export declare class IpSetReferenceStatement extends core.Schema<IpSetReferenceStatementArgs> {
    arn: string | core.StringOut;
    ipSetForwardedIpConfig?: IpSetForwardedIpConfig;
}
export interface LabelMatchStatementArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    scope: string | core.StringOut;
}
export declare class LabelMatchStatement extends core.Schema<LabelMatchStatementArgs> {
    key: string | core.StringOut;
    scope: string | core.StringOut;
}
export interface SizeConstraintStatementArgs extends core.SchemaArgs {
    comparisonOperator: string | core.StringOut;
    fieldToMatch?: FieldToMatch;
    size: number | core.NumberOut;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export declare class SizeConstraintStatement extends core.Schema<SizeConstraintStatementArgs> {
    comparisonOperator: string | core.StringOut;
    fieldToMatch?: FieldToMatch;
    size: number | core.NumberOut;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export interface SqliMatchStatementArgs extends core.SchemaArgs {
    fieldToMatch?: FieldToMatch;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export declare class SqliMatchStatement extends core.Schema<SqliMatchStatementArgs> {
    fieldToMatch?: FieldToMatch;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export interface XssMatchStatementArgs extends core.SchemaArgs {
    fieldToMatch?: FieldToMatch;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export declare class XssMatchStatement extends core.Schema<XssMatchStatementArgs> {
    fieldToMatch?: FieldToMatch;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export interface ByteMatchStatementArgs extends core.SchemaArgs {
    fieldToMatch?: FieldToMatch;
    positionalConstraint: string | core.StringOut;
    searchString: string | core.StringOut;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export declare class ByteMatchStatement extends core.Schema<ByteMatchStatementArgs> {
    fieldToMatch?: FieldToMatch;
    positionalConstraint: string | core.StringOut;
    searchString: string | core.StringOut;
    textTransformation: core.Array<TextTransformation> | core.ArrayOut<TextTransformation>;
}
export interface ScopeDownStatementOrStatementStatementAndStatementStatementArgs extends core.SchemaArgs {
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export declare class ScopeDownStatementOrStatementStatementAndStatementStatement extends core.Schema<ScopeDownStatementOrStatementStatementAndStatementStatementArgs> {
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export interface ScopeDownStatementOrStatementStatementAndStatementArgs extends core.SchemaArgs {
    statement: core.Array<ScopeDownStatementOrStatementStatementAndStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatementAndStatementStatement>;
}
export declare class ScopeDownStatementOrStatementStatementAndStatement extends core.Schema<ScopeDownStatementOrStatementStatementAndStatementArgs> {
    statement: core.Array<ScopeDownStatementOrStatementStatementAndStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatementAndStatementStatement>;
}
export interface ScopeDownStatementOrStatementStatementOrStatementArgs extends core.SchemaArgs {
    statement: core.Array<ScopeDownStatementOrStatementStatementAndStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatementAndStatementStatement>;
}
export declare class ScopeDownStatementOrStatementStatementOrStatement extends core.Schema<ScopeDownStatementOrStatementStatementOrStatementArgs> {
    statement: core.Array<ScopeDownStatementOrStatementStatementAndStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatementAndStatementStatement>;
}
export interface ScopeDownStatementOrStatementStatementNotStatementArgs extends core.SchemaArgs {
    statement: core.Array<ScopeDownStatementOrStatementStatementAndStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatementAndStatementStatement>;
}
export declare class ScopeDownStatementOrStatementStatementNotStatement extends core.Schema<ScopeDownStatementOrStatementStatementNotStatementArgs> {
    statement: core.Array<ScopeDownStatementOrStatementStatementAndStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatementAndStatementStatement>;
}
export interface ScopeDownStatementOrStatementStatementArgs extends core.SchemaArgs {
    andStatement?: ScopeDownStatementOrStatementStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    notStatement?: ScopeDownStatementOrStatementStatementNotStatement;
    orStatement?: ScopeDownStatementOrStatementStatementOrStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export declare class ScopeDownStatementOrStatementStatement extends core.Schema<ScopeDownStatementOrStatementStatementArgs> {
    andStatement?: ScopeDownStatementOrStatementStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    notStatement?: ScopeDownStatementOrStatementStatementNotStatement;
    orStatement?: ScopeDownStatementOrStatementStatementOrStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export interface ScopeDownStatementOrStatementArgs extends core.SchemaArgs {
    statement: core.Array<ScopeDownStatementOrStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatement>;
}
export declare class ScopeDownStatementOrStatement extends core.Schema<ScopeDownStatementOrStatementArgs> {
    statement: core.Array<ScopeDownStatementOrStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatement>;
}
export interface ScopeDownStatementNotStatementArgs extends core.SchemaArgs {
    statement: core.Array<ScopeDownStatementOrStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatement>;
}
export declare class ScopeDownStatementNotStatement extends core.Schema<ScopeDownStatementNotStatementArgs> {
    statement: core.Array<ScopeDownStatementOrStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatement>;
}
export interface ScopeDownStatementAndStatementArgs extends core.SchemaArgs {
    statement: core.Array<ScopeDownStatementOrStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatement>;
}
export declare class ScopeDownStatementAndStatement extends core.Schema<ScopeDownStatementAndStatementArgs> {
    statement: core.Array<ScopeDownStatementOrStatementStatement> | core.ArrayOut<ScopeDownStatementOrStatementStatement>;
}
export interface ScopeDownStatementArgs extends core.SchemaArgs {
    andStatement?: ScopeDownStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    notStatement?: ScopeDownStatementNotStatement;
    orStatement?: ScopeDownStatementOrStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export declare class ScopeDownStatement extends core.Schema<ScopeDownStatementArgs> {
    andStatement?: ScopeDownStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    notStatement?: ScopeDownStatementNotStatement;
    orStatement?: ScopeDownStatementOrStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export interface RateBasedStatementArgs extends core.SchemaArgs {
    aggregateKeyType?: string | core.StringOut;
    forwardedIpConfig?: ForwardedIpConfig;
    limit: number | core.NumberOut;
    scopeDownStatement?: ScopeDownStatement;
}
export declare class RateBasedStatement extends core.Schema<RateBasedStatementArgs> {
    aggregateKeyType?: string | core.StringOut;
    forwardedIpConfig?: ForwardedIpConfig;
    limit: number | core.NumberOut;
    scopeDownStatement?: ScopeDownStatement;
}
export interface RuleStatementOrStatementStatementArgs extends core.SchemaArgs {
    andStatement?: ScopeDownStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    notStatement?: ScopeDownStatementNotStatement;
    orStatement?: ScopeDownStatementOrStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export declare class RuleStatementOrStatementStatement extends core.Schema<RuleStatementOrStatementStatementArgs> {
    andStatement?: ScopeDownStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    notStatement?: ScopeDownStatementNotStatement;
    orStatement?: ScopeDownStatementOrStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export interface RuleStatementOrStatementArgs extends core.SchemaArgs {
    statement: core.Array<RuleStatementOrStatementStatement> | core.ArrayOut<RuleStatementOrStatementStatement>;
}
export declare class RuleStatementOrStatement extends core.Schema<RuleStatementOrStatementArgs> {
    statement: core.Array<RuleStatementOrStatementStatement> | core.ArrayOut<RuleStatementOrStatementStatement>;
}
export interface ExcludedRuleArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class ExcludedRule extends core.Schema<ExcludedRuleArgs> {
    name: string | core.StringOut;
}
export interface RuleGroupReferenceStatementArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    excludedRule?: core.Array<ExcludedRule> | core.ArrayOut<ExcludedRule>;
}
export declare class RuleGroupReferenceStatement extends core.Schema<RuleGroupReferenceStatementArgs> {
    arn: string | core.StringOut;
    excludedRule?: core.Array<ExcludedRule> | core.ArrayOut<ExcludedRule>;
}
export interface RuleStatementAndStatementArgs extends core.SchemaArgs {
    statement: core.Array<RuleStatementOrStatementStatement> | core.ArrayOut<RuleStatementOrStatementStatement>;
}
export declare class RuleStatementAndStatement extends core.Schema<RuleStatementAndStatementArgs> {
    statement: core.Array<RuleStatementOrStatementStatement> | core.ArrayOut<RuleStatementOrStatementStatement>;
}
export interface RuleStatementNotStatementArgs extends core.SchemaArgs {
    statement: core.Array<RuleStatementOrStatementStatement> | core.ArrayOut<RuleStatementOrStatementStatement>;
}
export declare class RuleStatementNotStatement extends core.Schema<RuleStatementNotStatementArgs> {
    statement: core.Array<RuleStatementOrStatementStatement> | core.ArrayOut<RuleStatementOrStatementStatement>;
}
export interface ManagedRuleGroupStatementArgs extends core.SchemaArgs {
    excludedRule?: core.Array<ExcludedRule> | core.ArrayOut<ExcludedRule>;
    name: string | core.StringOut;
    scopeDownStatement?: ScopeDownStatement;
    vendorName: string | core.StringOut;
    version?: string | core.StringOut;
}
export declare class ManagedRuleGroupStatement extends core.Schema<ManagedRuleGroupStatementArgs> {
    excludedRule?: core.Array<ExcludedRule> | core.ArrayOut<ExcludedRule>;
    name: string | core.StringOut;
    scopeDownStatement?: ScopeDownStatement;
    vendorName: string | core.StringOut;
    version?: string | core.StringOut;
}
export interface RuleStatementArgs extends core.SchemaArgs {
    andStatement?: RuleStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    managedRuleGroupStatement?: ManagedRuleGroupStatement;
    notStatement?: RuleStatementNotStatement;
    orStatement?: RuleStatementOrStatement;
    rateBasedStatement?: RateBasedStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    ruleGroupReferenceStatement?: RuleGroupReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export declare class RuleStatement extends core.Schema<RuleStatementArgs> {
    andStatement?: RuleStatementAndStatement;
    byteMatchStatement?: ByteMatchStatement;
    geoMatchStatement?: GeoMatchStatement;
    ipSetReferenceStatement?: IpSetReferenceStatement;
    labelMatchStatement?: LabelMatchStatement;
    managedRuleGroupStatement?: ManagedRuleGroupStatement;
    notStatement?: RuleStatementNotStatement;
    orStatement?: RuleStatementOrStatement;
    rateBasedStatement?: RateBasedStatement;
    regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
    ruleGroupReferenceStatement?: RuleGroupReferenceStatement;
    sizeConstraintStatement?: SizeConstraintStatement;
    sqliMatchStatement?: SqliMatchStatement;
    xssMatchStatement?: XssMatchStatement;
}
export interface VisibilityConfigArgs extends core.SchemaArgs {
    cloudwatchMetricsEnabled: boolean | core.BooleanOut;
    metricName: string | core.StringOut;
    sampledRequestsEnabled: boolean | core.BooleanOut;
}
export declare class VisibilityConfig extends core.Schema<VisibilityConfigArgs> {
    cloudwatchMetricsEnabled: boolean | core.BooleanOut;
    metricName: string | core.StringOut;
    sampledRequestsEnabled: boolean | core.BooleanOut;
}
export interface ActionCountArgs extends core.SchemaArgs {
    customRequestHandling?: CustomRequestHandling;
}
export declare class ActionCount extends core.Schema<ActionCountArgs> {
    customRequestHandling?: CustomRequestHandling;
}
export interface CaptchaArgs extends core.SchemaArgs {
    customRequestHandling?: CustomRequestHandling;
}
export declare class Captcha extends core.Schema<CaptchaArgs> {
    customRequestHandling?: CustomRequestHandling;
}
export interface ActionArgs extends core.SchemaArgs {
    allow?: Allow;
    block?: Block;
    captcha?: Captcha;
    count?: ActionCount;
}
export declare class Action extends core.Schema<ActionArgs> {
    allow?: Allow;
    block?: Block;
    captcha?: Captcha;
    count?: ActionCount;
}
export interface OverrideActionCountArgs extends core.SchemaArgs {
}
export declare class OverrideActionCount extends core.Schema<OverrideActionCountArgs> {
}
export interface NoneArgs extends core.SchemaArgs {
}
export declare class None extends core.Schema<NoneArgs> {
}
export interface OverrideActionArgs extends core.SchemaArgs {
    count?: OverrideActionCount;
    none?: None;
}
export declare class OverrideAction extends core.Schema<OverrideActionArgs> {
    count?: OverrideActionCount;
    none?: None;
}
export interface RuleLabelArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class RuleLabel extends core.Schema<RuleLabelArgs> {
    name: string | core.StringOut;
}
export interface RuleArgs extends core.SchemaArgs {
    action?: Action;
    name: string | core.StringOut;
    overrideAction?: OverrideAction;
    priority: number | core.NumberOut;
    ruleLabel?: core.Array<RuleLabel> | core.ArrayOut<RuleLabel>;
    statement: RuleStatement;
    visibilityConfig: VisibilityConfig;
}
export declare class Rule extends core.Schema<RuleArgs> {
    action?: Action;
    name: string | core.StringOut;
    overrideAction?: OverrideAction;
    priority: number | core.NumberOut;
    ruleLabel?: core.Array<RuleLabel> | core.ArrayOut<RuleLabel>;
    statement: RuleStatement;
    visibilityConfig: VisibilityConfig;
}
export interface V2WebAclArgs extends core.ResourceArgs {
    customResponseBody?: core.Array<CustomResponseBody> | core.ArrayOut<CustomResponseBody>;
    defaultAction: DefaultAction;
    description?: string | core.StringOut;
    name: string | core.StringOut;
    rule?: core.Array<Rule> | core.ArrayOut<Rule>;
    scope: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    visibilityConfig: VisibilityConfig;
}
export declare class V2WebAcl extends core.Resource<V2WebAclArgs> {
    arn: string | core.StringOut;
    capacity: number | core.NumberOut;
    customResponseBody?: core.Array<CustomResponseBody> | core.ArrayOut<CustomResponseBody>;
    defaultAction: DefaultAction;
    description?: string | core.StringOut;
    id: string | core.StringOut;
    lockToken: string | core.StringOut;
    name: string | core.StringOut;
    rule?: core.Array<Rule> | core.ArrayOut<Rule>;
    scope: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    visibilityConfig: VisibilityConfig;
    constructor(name: string, args?: V2WebAclArgs);
    getNamespace(): string;
}
//# sourceMappingURL=v2_web_acl.d.ts.map