import * as core from "@terrascript/core";
export interface DefaultActionArgs extends core.SchemaArgs {
    type: string | core.StringOut;
}
export declare class DefaultAction extends core.Schema<DefaultActionArgs> {
    type: string | core.StringOut;
}
export interface FieldToMatchArgs extends core.SchemaArgs {
    data?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class FieldToMatch extends core.Schema<FieldToMatchArgs> {
    data?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface RedactedFieldsArgs extends core.SchemaArgs {
    fieldToMatch: core.Array<FieldToMatch> | core.ArrayOut<FieldToMatch>;
}
export declare class RedactedFields extends core.Schema<RedactedFieldsArgs> {
    fieldToMatch: core.Array<FieldToMatch> | core.ArrayOut<FieldToMatch>;
}
export interface LoggingConfigurationArgs extends core.SchemaArgs {
    logDestination: string | core.StringOut;
    redactedFields?: RedactedFields;
}
export declare class LoggingConfiguration extends core.Schema<LoggingConfigurationArgs> {
    logDestination: string | core.StringOut;
    redactedFields?: RedactedFields;
}
export interface ActionArgs extends core.SchemaArgs {
    type: string | core.StringOut;
}
export declare class Action extends core.Schema<ActionArgs> {
    type: string | core.StringOut;
}
export interface OverrideActionArgs extends core.SchemaArgs {
    type: string | core.StringOut;
}
export declare class OverrideAction extends core.Schema<OverrideActionArgs> {
    type: string | core.StringOut;
}
export interface RuleArgs extends core.SchemaArgs {
    action?: Action;
    overrideAction?: OverrideAction;
    priority: number | core.NumberOut;
    ruleId: string | core.StringOut;
    type?: string | core.StringOut;
}
export declare class Rule extends core.Schema<RuleArgs> {
    action?: Action;
    overrideAction?: OverrideAction;
    priority: number | core.NumberOut;
    ruleId: string | core.StringOut;
    type?: string | core.StringOut;
}
export interface WebAclArgs extends core.ResourceArgs {
    defaultAction: DefaultAction;
    loggingConfiguration?: LoggingConfiguration;
    metricName: string | core.StringOut;
    name: string | core.StringOut;
    rule?: core.Array<Rule> | core.ArrayOut<Rule>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class WebAcl extends core.Resource<WebAclArgs> {
    arn: string | core.StringOut;
    defaultAction: DefaultAction;
    id: string | core.StringOut;
    loggingConfiguration?: LoggingConfiguration;
    metricName: string | core.StringOut;
    name: string | core.StringOut;
    rule?: core.Array<Rule> | core.ArrayOut<Rule>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: WebAclArgs);
    getNamespace(): string;
}
//# sourceMappingURL=web_acl.d.ts.map