import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface WaasWaasPolicyConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#additional_domains WaasWaasPolicy#additional_domains}
    */
    readonly additionalDomains?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#compartment_id WaasWaasPolicy#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#defined_tags WaasWaasPolicy#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#display_name WaasWaasPolicy#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#domain WaasWaasPolicy#domain}
    */
    readonly domain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#freeform_tags WaasWaasPolicy#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#id WaasWaasPolicy#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * origin_groups block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#origin_groups WaasWaasPolicy#origin_groups}
    */
    readonly originGroups?: WaasWaasPolicyOriginGroups[] | cdktf.IResolvable;
    /**
    * origins block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#origins WaasWaasPolicy#origins}
    */
    readonly origins?: WaasWaasPolicyOrigins[] | cdktf.IResolvable;
    /**
    * policy_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#policy_config WaasWaasPolicy#policy_config}
    */
    readonly policyConfig?: WaasWaasPolicyPolicyConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#timeouts WaasWaasPolicy#timeouts}
    */
    readonly timeouts?: WaasWaasPolicyTimeouts;
    /**
    * waf_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#waf_config WaasWaasPolicy#waf_config}
    */
    readonly wafConfig?: WaasWaasPolicyWafConfig;
}
export interface WaasWaasPolicyOriginGroupsOriginGroup {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#origin WaasWaasPolicy#origin}
    */
    readonly origin: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#weight WaasWaasPolicy#weight}
    */
    readonly weight?: number;
}
export declare function waasWaasPolicyOriginGroupsOriginGroupToTerraform(struct?: WaasWaasPolicyOriginGroupsOriginGroup | cdktf.IResolvable): any;
export declare function waasWaasPolicyOriginGroupsOriginGroupToHclTerraform(struct?: WaasWaasPolicyOriginGroupsOriginGroup | cdktf.IResolvable): any;
export declare class WaasWaasPolicyOriginGroupsOriginGroupOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyOriginGroupsOriginGroup | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyOriginGroupsOriginGroup | cdktf.IResolvable | undefined);
    private _origin?;
    get origin(): string;
    set origin(value: string);
    get originInput(): string | undefined;
    private _weight?;
    get weight(): number;
    set weight(value: number);
    resetWeight(): void;
    get weightInput(): number | undefined;
}
export declare class WaasWaasPolicyOriginGroupsOriginGroupList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyOriginGroupsOriginGroup[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyOriginGroupsOriginGroupOutputReference;
}
export interface WaasWaasPolicyOriginGroups {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#label WaasWaasPolicy#label}
    */
    readonly label: string;
    /**
    * origin_group block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#origin_group WaasWaasPolicy#origin_group}
    */
    readonly originGroup: WaasWaasPolicyOriginGroupsOriginGroup[] | cdktf.IResolvable;
}
export declare function waasWaasPolicyOriginGroupsToTerraform(struct?: WaasWaasPolicyOriginGroups | cdktf.IResolvable): any;
export declare function waasWaasPolicyOriginGroupsToHclTerraform(struct?: WaasWaasPolicyOriginGroups | cdktf.IResolvable): any;
export declare class WaasWaasPolicyOriginGroupsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyOriginGroups | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyOriginGroups | cdktf.IResolvable | undefined);
    private _label?;
    get label(): string;
    set label(value: string);
    get labelInput(): string | undefined;
    private _originGroup;
    get originGroup(): WaasWaasPolicyOriginGroupsOriginGroupList;
    putOriginGroup(value: WaasWaasPolicyOriginGroupsOriginGroup[] | cdktf.IResolvable): void;
    get originGroupInput(): cdktf.IResolvable | WaasWaasPolicyOriginGroupsOriginGroup[] | undefined;
}
export declare class WaasWaasPolicyOriginGroupsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyOriginGroups[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyOriginGroupsOutputReference;
}
export interface WaasWaasPolicyOriginsCustomHeaders {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value: string;
}
export declare function waasWaasPolicyOriginsCustomHeadersToTerraform(struct?: WaasWaasPolicyOriginsCustomHeaders | cdktf.IResolvable): any;
export declare function waasWaasPolicyOriginsCustomHeadersToHclTerraform(struct?: WaasWaasPolicyOriginsCustomHeaders | cdktf.IResolvable): any;
export declare class WaasWaasPolicyOriginsCustomHeadersOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyOriginsCustomHeaders | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyOriginsCustomHeaders | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class WaasWaasPolicyOriginsCustomHeadersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyOriginsCustomHeaders[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyOriginsCustomHeadersOutputReference;
}
export interface WaasWaasPolicyOrigins {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#http_port WaasWaasPolicy#http_port}
    */
    readonly httpPort?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#https_port WaasWaasPolicy#https_port}
    */
    readonly httpsPort?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#label WaasWaasPolicy#label}
    */
    readonly label: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#uri WaasWaasPolicy#uri}
    */
    readonly uri: string;
    /**
    * custom_headers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#custom_headers WaasWaasPolicy#custom_headers}
    */
    readonly customHeaders?: WaasWaasPolicyOriginsCustomHeaders[] | cdktf.IResolvable;
}
export declare function waasWaasPolicyOriginsToTerraform(struct?: WaasWaasPolicyOrigins | cdktf.IResolvable): any;
export declare function waasWaasPolicyOriginsToHclTerraform(struct?: WaasWaasPolicyOrigins | cdktf.IResolvable): any;
export declare class WaasWaasPolicyOriginsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyOrigins | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyOrigins | cdktf.IResolvable | undefined);
    private _httpPort?;
    get httpPort(): number;
    set httpPort(value: number);
    resetHttpPort(): void;
    get httpPortInput(): number | undefined;
    private _httpsPort?;
    get httpsPort(): number;
    set httpsPort(value: number);
    resetHttpsPort(): void;
    get httpsPortInput(): number | undefined;
    private _label?;
    get label(): string;
    set label(value: string);
    get labelInput(): string | undefined;
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
    private _customHeaders;
    get customHeaders(): WaasWaasPolicyOriginsCustomHeadersList;
    putCustomHeaders(value: WaasWaasPolicyOriginsCustomHeaders[] | cdktf.IResolvable): void;
    resetCustomHeaders(): void;
    get customHeadersInput(): cdktf.IResolvable | WaasWaasPolicyOriginsCustomHeaders[] | undefined;
}
export declare class WaasWaasPolicyOriginsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyOrigins[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyOriginsOutputReference;
}
export interface WaasWaasPolicyPolicyConfigHealthChecks {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#expected_response_code_group WaasWaasPolicy#expected_response_code_group}
    */
    readonly expectedResponseCodeGroup?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#expected_response_text WaasWaasPolicy#expected_response_text}
    */
    readonly expectedResponseText?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#headers WaasWaasPolicy#headers}
    */
    readonly headers?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#healthy_threshold WaasWaasPolicy#healthy_threshold}
    */
    readonly healthyThreshold?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#interval_in_seconds WaasWaasPolicy#interval_in_seconds}
    */
    readonly intervalInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_enabled WaasWaasPolicy#is_enabled}
    */
    readonly isEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_response_text_check_enabled WaasWaasPolicy#is_response_text_check_enabled}
    */
    readonly isResponseTextCheckEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#method WaasWaasPolicy#method}
    */
    readonly method?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#path WaasWaasPolicy#path}
    */
    readonly path?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#timeout_in_seconds WaasWaasPolicy#timeout_in_seconds}
    */
    readonly timeoutInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#unhealthy_threshold WaasWaasPolicy#unhealthy_threshold}
    */
    readonly unhealthyThreshold?: number;
}
export declare function waasWaasPolicyPolicyConfigHealthChecksToTerraform(struct?: WaasWaasPolicyPolicyConfigHealthChecksOutputReference | WaasWaasPolicyPolicyConfigHealthChecks): any;
export declare function waasWaasPolicyPolicyConfigHealthChecksToHclTerraform(struct?: WaasWaasPolicyPolicyConfigHealthChecksOutputReference | WaasWaasPolicyPolicyConfigHealthChecks): any;
export declare class WaasWaasPolicyPolicyConfigHealthChecksOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyPolicyConfigHealthChecks | undefined;
    set internalValue(value: WaasWaasPolicyPolicyConfigHealthChecks | undefined);
    private _expectedResponseCodeGroup?;
    get expectedResponseCodeGroup(): string[];
    set expectedResponseCodeGroup(value: string[]);
    resetExpectedResponseCodeGroup(): void;
    get expectedResponseCodeGroupInput(): string[] | undefined;
    private _expectedResponseText?;
    get expectedResponseText(): string;
    set expectedResponseText(value: string);
    resetExpectedResponseText(): void;
    get expectedResponseTextInput(): string | undefined;
    private _headers?;
    get headers(): {
        [key: string]: string;
    };
    set headers(value: {
        [key: string]: string;
    });
    resetHeaders(): void;
    get headersInput(): {
        [key: string]: string;
    } | undefined;
    private _healthyThreshold?;
    get healthyThreshold(): number;
    set healthyThreshold(value: number);
    resetHealthyThreshold(): void;
    get healthyThresholdInput(): number | undefined;
    private _intervalInSeconds?;
    get intervalInSeconds(): number;
    set intervalInSeconds(value: number);
    resetIntervalInSeconds(): void;
    get intervalInSecondsInput(): number | undefined;
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    resetIsEnabled(): void;
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isResponseTextCheckEnabled?;
    get isResponseTextCheckEnabled(): boolean | cdktf.IResolvable;
    set isResponseTextCheckEnabled(value: boolean | cdktf.IResolvable);
    resetIsResponseTextCheckEnabled(): void;
    get isResponseTextCheckEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _method?;
    get method(): string;
    set method(value: string);
    resetMethod(): void;
    get methodInput(): string | undefined;
    private _path?;
    get path(): string;
    set path(value: string);
    resetPath(): void;
    get pathInput(): string | undefined;
    private _timeoutInSeconds?;
    get timeoutInSeconds(): number;
    set timeoutInSeconds(value: number);
    resetTimeoutInSeconds(): void;
    get timeoutInSecondsInput(): number | undefined;
    private _unhealthyThreshold?;
    get unhealthyThreshold(): number;
    set unhealthyThreshold(value: number);
    resetUnhealthyThreshold(): void;
    get unhealthyThresholdInput(): number | undefined;
}
export interface WaasWaasPolicyPolicyConfigLoadBalancingMethod {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#domain WaasWaasPolicy#domain}
    */
    readonly domain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#expiration_time_in_seconds WaasWaasPolicy#expiration_time_in_seconds}
    */
    readonly expirationTimeInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#method WaasWaasPolicy#method}
    */
    readonly method: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name?: string;
}
export declare function waasWaasPolicyPolicyConfigLoadBalancingMethodToTerraform(struct?: WaasWaasPolicyPolicyConfigLoadBalancingMethodOutputReference | WaasWaasPolicyPolicyConfigLoadBalancingMethod): any;
export declare function waasWaasPolicyPolicyConfigLoadBalancingMethodToHclTerraform(struct?: WaasWaasPolicyPolicyConfigLoadBalancingMethodOutputReference | WaasWaasPolicyPolicyConfigLoadBalancingMethod): any;
export declare class WaasWaasPolicyPolicyConfigLoadBalancingMethodOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyPolicyConfigLoadBalancingMethod | undefined;
    set internalValue(value: WaasWaasPolicyPolicyConfigLoadBalancingMethod | undefined);
    private _domain?;
    get domain(): string;
    set domain(value: string);
    resetDomain(): void;
    get domainInput(): string | undefined;
    private _expirationTimeInSeconds?;
    get expirationTimeInSeconds(): number;
    set expirationTimeInSeconds(value: number);
    resetExpirationTimeInSeconds(): void;
    get expirationTimeInSecondsInput(): number | undefined;
    private _method?;
    get method(): string;
    set method(value: string);
    get methodInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
}
export interface WaasWaasPolicyPolicyConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#certificate_id WaasWaasPolicy#certificate_id}
    */
    readonly certificateId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#cipher_group WaasWaasPolicy#cipher_group}
    */
    readonly cipherGroup?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#client_address_header WaasWaasPolicy#client_address_header}
    */
    readonly clientAddressHeader?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_behind_cdn WaasWaasPolicy#is_behind_cdn}
    */
    readonly isBehindCdn?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_cache_control_respected WaasWaasPolicy#is_cache_control_respected}
    */
    readonly isCacheControlRespected?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_https_enabled WaasWaasPolicy#is_https_enabled}
    */
    readonly isHttpsEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_https_forced WaasWaasPolicy#is_https_forced}
    */
    readonly isHttpsForced?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_origin_compression_enabled WaasWaasPolicy#is_origin_compression_enabled}
    */
    readonly isOriginCompressionEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_response_buffering_enabled WaasWaasPolicy#is_response_buffering_enabled}
    */
    readonly isResponseBufferingEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_sni_enabled WaasWaasPolicy#is_sni_enabled}
    */
    readonly isSniEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#tls_protocols WaasWaasPolicy#tls_protocols}
    */
    readonly tlsProtocols?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#websocket_path_prefixes WaasWaasPolicy#websocket_path_prefixes}
    */
    readonly websocketPathPrefixes?: string[];
    /**
    * health_checks block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#health_checks WaasWaasPolicy#health_checks}
    */
    readonly healthChecks?: WaasWaasPolicyPolicyConfigHealthChecks;
    /**
    * load_balancing_method block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#load_balancing_method WaasWaasPolicy#load_balancing_method}
    */
    readonly loadBalancingMethod?: WaasWaasPolicyPolicyConfigLoadBalancingMethod;
}
export declare function waasWaasPolicyPolicyConfigToTerraform(struct?: WaasWaasPolicyPolicyConfigOutputReference | WaasWaasPolicyPolicyConfig): any;
export declare function waasWaasPolicyPolicyConfigToHclTerraform(struct?: WaasWaasPolicyPolicyConfigOutputReference | WaasWaasPolicyPolicyConfig): any;
export declare class WaasWaasPolicyPolicyConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyPolicyConfig | undefined;
    set internalValue(value: WaasWaasPolicyPolicyConfig | undefined);
    private _certificateId?;
    get certificateId(): string;
    set certificateId(value: string);
    resetCertificateId(): void;
    get certificateIdInput(): string | undefined;
    private _cipherGroup?;
    get cipherGroup(): string;
    set cipherGroup(value: string);
    resetCipherGroup(): void;
    get cipherGroupInput(): string | undefined;
    private _clientAddressHeader?;
    get clientAddressHeader(): string;
    set clientAddressHeader(value: string);
    resetClientAddressHeader(): void;
    get clientAddressHeaderInput(): string | undefined;
    private _isBehindCdn?;
    get isBehindCdn(): boolean | cdktf.IResolvable;
    set isBehindCdn(value: boolean | cdktf.IResolvable);
    resetIsBehindCdn(): void;
    get isBehindCdnInput(): boolean | cdktf.IResolvable | undefined;
    private _isCacheControlRespected?;
    get isCacheControlRespected(): boolean | cdktf.IResolvable;
    set isCacheControlRespected(value: boolean | cdktf.IResolvable);
    resetIsCacheControlRespected(): void;
    get isCacheControlRespectedInput(): boolean | cdktf.IResolvable | undefined;
    private _isHttpsEnabled?;
    get isHttpsEnabled(): boolean | cdktf.IResolvable;
    set isHttpsEnabled(value: boolean | cdktf.IResolvable);
    resetIsHttpsEnabled(): void;
    get isHttpsEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isHttpsForced?;
    get isHttpsForced(): boolean | cdktf.IResolvable;
    set isHttpsForced(value: boolean | cdktf.IResolvable);
    resetIsHttpsForced(): void;
    get isHttpsForcedInput(): boolean | cdktf.IResolvable | undefined;
    private _isOriginCompressionEnabled?;
    get isOriginCompressionEnabled(): boolean | cdktf.IResolvable;
    set isOriginCompressionEnabled(value: boolean | cdktf.IResolvable);
    resetIsOriginCompressionEnabled(): void;
    get isOriginCompressionEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isResponseBufferingEnabled?;
    get isResponseBufferingEnabled(): boolean | cdktf.IResolvable;
    set isResponseBufferingEnabled(value: boolean | cdktf.IResolvable);
    resetIsResponseBufferingEnabled(): void;
    get isResponseBufferingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isSniEnabled?;
    get isSniEnabled(): boolean | cdktf.IResolvable;
    set isSniEnabled(value: boolean | cdktf.IResolvable);
    resetIsSniEnabled(): void;
    get isSniEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _tlsProtocols?;
    get tlsProtocols(): string[];
    set tlsProtocols(value: string[]);
    resetTlsProtocols(): void;
    get tlsProtocolsInput(): string[] | undefined;
    private _websocketPathPrefixes?;
    get websocketPathPrefixes(): string[];
    set websocketPathPrefixes(value: string[]);
    resetWebsocketPathPrefixes(): void;
    get websocketPathPrefixesInput(): string[] | undefined;
    private _healthChecks;
    get healthChecks(): WaasWaasPolicyPolicyConfigHealthChecksOutputReference;
    putHealthChecks(value: WaasWaasPolicyPolicyConfigHealthChecks): void;
    resetHealthChecks(): void;
    get healthChecksInput(): WaasWaasPolicyPolicyConfigHealthChecks | undefined;
    private _loadBalancingMethod;
    get loadBalancingMethod(): WaasWaasPolicyPolicyConfigLoadBalancingMethodOutputReference;
    putLoadBalancingMethod(value: WaasWaasPolicyPolicyConfigLoadBalancingMethod): void;
    resetLoadBalancingMethod(): void;
    get loadBalancingMethodInput(): WaasWaasPolicyPolicyConfigLoadBalancingMethod | undefined;
}
export interface WaasWaasPolicyTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#create WaasWaasPolicy#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#delete WaasWaasPolicy#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#update WaasWaasPolicy#update}
    */
    readonly update?: string;
}
export declare function waasWaasPolicyTimeoutsToTerraform(struct?: WaasWaasPolicyTimeouts | cdktf.IResolvable): any;
export declare function waasWaasPolicyTimeoutsToHclTerraform(struct?: WaasWaasPolicyTimeouts | cdktf.IResolvable): any;
export declare class WaasWaasPolicyTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
export interface WaasWaasPolicyWafConfigAccessRulesCriteria {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#condition WaasWaasPolicy#condition}
    */
    readonly condition: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_case_sensitive WaasWaasPolicy#is_case_sensitive}
    */
    readonly isCaseSensitive?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value: string;
}
export declare function waasWaasPolicyWafConfigAccessRulesCriteriaToTerraform(struct?: WaasWaasPolicyWafConfigAccessRulesCriteria | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigAccessRulesCriteriaToHclTerraform(struct?: WaasWaasPolicyWafConfigAccessRulesCriteria | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigAccessRulesCriteriaOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigAccessRulesCriteria | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigAccessRulesCriteria | cdktf.IResolvable | undefined);
    private _condition?;
    get condition(): string;
    set condition(value: string);
    get conditionInput(): string | undefined;
    private _isCaseSensitive?;
    get isCaseSensitive(): boolean | cdktf.IResolvable;
    set isCaseSensitive(value: boolean | cdktf.IResolvable);
    resetIsCaseSensitive(): void;
    get isCaseSensitiveInput(): boolean | cdktf.IResolvable | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigAccessRulesCriteriaList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigAccessRulesCriteria[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigAccessRulesCriteriaOutputReference;
}
export interface WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#header WaasWaasPolicy#header}
    */
    readonly header: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value?: string;
}
export declare function waasWaasPolicyWafConfigAccessRulesResponseHeaderManipulationToTerraform(struct?: WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigAccessRulesResponseHeaderManipulationToHclTerraform(struct?: WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation | cdktf.IResolvable | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    get actionInput(): string | undefined;
    private _header?;
    get header(): string;
    set header(value: string);
    get headerInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulationList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulationOutputReference;
}
export interface WaasWaasPolicyWafConfigAccessRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_action WaasWaasPolicy#block_action}
    */
    readonly blockAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_code WaasWaasPolicy#block_error_page_code}
    */
    readonly blockErrorPageCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_description WaasWaasPolicy#block_error_page_description}
    */
    readonly blockErrorPageDescription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_message WaasWaasPolicy#block_error_page_message}
    */
    readonly blockErrorPageMessage?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_response_code WaasWaasPolicy#block_response_code}
    */
    readonly blockResponseCode?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#bypass_challenges WaasWaasPolicy#bypass_challenges}
    */
    readonly bypassChallenges?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_footer WaasWaasPolicy#captcha_footer}
    */
    readonly captchaFooter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_header WaasWaasPolicy#captcha_header}
    */
    readonly captchaHeader?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_submit_label WaasWaasPolicy#captcha_submit_label}
    */
    readonly captchaSubmitLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_title WaasWaasPolicy#captcha_title}
    */
    readonly captchaTitle?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#redirect_response_code WaasWaasPolicy#redirect_response_code}
    */
    readonly redirectResponseCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#redirect_url WaasWaasPolicy#redirect_url}
    */
    readonly redirectUrl?: string;
    /**
    * criteria block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#criteria WaasWaasPolicy#criteria}
    */
    readonly criteria: WaasWaasPolicyWafConfigAccessRulesCriteria[] | cdktf.IResolvable;
    /**
    * response_header_manipulation block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#response_header_manipulation WaasWaasPolicy#response_header_manipulation}
    */
    readonly responseHeaderManipulation?: WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation[] | cdktf.IResolvable;
}
export declare function waasWaasPolicyWafConfigAccessRulesToTerraform(struct?: WaasWaasPolicyWafConfigAccessRules | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigAccessRulesToHclTerraform(struct?: WaasWaasPolicyWafConfigAccessRules | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigAccessRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigAccessRules | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigAccessRules | cdktf.IResolvable | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    get actionInput(): string | undefined;
    private _blockAction?;
    get blockAction(): string;
    set blockAction(value: string);
    resetBlockAction(): void;
    get blockActionInput(): string | undefined;
    private _blockErrorPageCode?;
    get blockErrorPageCode(): string;
    set blockErrorPageCode(value: string);
    resetBlockErrorPageCode(): void;
    get blockErrorPageCodeInput(): string | undefined;
    private _blockErrorPageDescription?;
    get blockErrorPageDescription(): string;
    set blockErrorPageDescription(value: string);
    resetBlockErrorPageDescription(): void;
    get blockErrorPageDescriptionInput(): string | undefined;
    private _blockErrorPageMessage?;
    get blockErrorPageMessage(): string;
    set blockErrorPageMessage(value: string);
    resetBlockErrorPageMessage(): void;
    get blockErrorPageMessageInput(): string | undefined;
    private _blockResponseCode?;
    get blockResponseCode(): number;
    set blockResponseCode(value: number);
    resetBlockResponseCode(): void;
    get blockResponseCodeInput(): number | undefined;
    private _bypassChallenges?;
    get bypassChallenges(): string[];
    set bypassChallenges(value: string[]);
    resetBypassChallenges(): void;
    get bypassChallengesInput(): string[] | undefined;
    private _captchaFooter?;
    get captchaFooter(): string;
    set captchaFooter(value: string);
    resetCaptchaFooter(): void;
    get captchaFooterInput(): string | undefined;
    private _captchaHeader?;
    get captchaHeader(): string;
    set captchaHeader(value: string);
    resetCaptchaHeader(): void;
    get captchaHeaderInput(): string | undefined;
    private _captchaSubmitLabel?;
    get captchaSubmitLabel(): string;
    set captchaSubmitLabel(value: string);
    resetCaptchaSubmitLabel(): void;
    get captchaSubmitLabelInput(): string | undefined;
    private _captchaTitle?;
    get captchaTitle(): string;
    set captchaTitle(value: string);
    resetCaptchaTitle(): void;
    get captchaTitleInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _redirectResponseCode?;
    get redirectResponseCode(): string;
    set redirectResponseCode(value: string);
    resetRedirectResponseCode(): void;
    get redirectResponseCodeInput(): string | undefined;
    private _redirectUrl?;
    get redirectUrl(): string;
    set redirectUrl(value: string);
    resetRedirectUrl(): void;
    get redirectUrlInput(): string | undefined;
    private _criteria;
    get criteria(): WaasWaasPolicyWafConfigAccessRulesCriteriaList;
    putCriteria(value: WaasWaasPolicyWafConfigAccessRulesCriteria[] | cdktf.IResolvable): void;
    get criteriaInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigAccessRulesCriteria[] | undefined;
    private _responseHeaderManipulation;
    get responseHeaderManipulation(): WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulationList;
    putResponseHeaderManipulation(value: WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation[] | cdktf.IResolvable): void;
    resetResponseHeaderManipulation(): void;
    get responseHeaderManipulationInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigAccessRulesResponseHeaderManipulation[] | undefined;
}
export declare class WaasWaasPolicyWafConfigAccessRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigAccessRules[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigAccessRulesOutputReference;
}
export interface WaasWaasPolicyWafConfigAddressRateLimiting {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#allowed_rate_per_address WaasWaasPolicy#allowed_rate_per_address}
    */
    readonly allowedRatePerAddress?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_response_code WaasWaasPolicy#block_response_code}
    */
    readonly blockResponseCode?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_enabled WaasWaasPolicy#is_enabled}
    */
    readonly isEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_delayed_count_per_address WaasWaasPolicy#max_delayed_count_per_address}
    */
    readonly maxDelayedCountPerAddress?: number;
}
export declare function waasWaasPolicyWafConfigAddressRateLimitingToTerraform(struct?: WaasWaasPolicyWafConfigAddressRateLimitingOutputReference | WaasWaasPolicyWafConfigAddressRateLimiting): any;
export declare function waasWaasPolicyWafConfigAddressRateLimitingToHclTerraform(struct?: WaasWaasPolicyWafConfigAddressRateLimitingOutputReference | WaasWaasPolicyWafConfigAddressRateLimiting): any;
export declare class WaasWaasPolicyWafConfigAddressRateLimitingOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigAddressRateLimiting | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigAddressRateLimiting | undefined);
    private _allowedRatePerAddress?;
    get allowedRatePerAddress(): number;
    set allowedRatePerAddress(value: number);
    resetAllowedRatePerAddress(): void;
    get allowedRatePerAddressInput(): number | undefined;
    private _blockResponseCode?;
    get blockResponseCode(): number;
    set blockResponseCode(value: number);
    resetBlockResponseCode(): void;
    get blockResponseCodeInput(): number | undefined;
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _maxDelayedCountPerAddress?;
    get maxDelayedCountPerAddress(): number;
    set maxDelayedCountPerAddress(value: number);
    resetMaxDelayedCountPerAddress(): void;
    get maxDelayedCountPerAddressInput(): number | undefined;
}
export interface WaasWaasPolicyWafConfigCachingRulesCriteria {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#condition WaasWaasPolicy#condition}
    */
    readonly condition: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value: string;
}
export declare function waasWaasPolicyWafConfigCachingRulesCriteriaToTerraform(struct?: WaasWaasPolicyWafConfigCachingRulesCriteria | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigCachingRulesCriteriaToHclTerraform(struct?: WaasWaasPolicyWafConfigCachingRulesCriteria | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigCachingRulesCriteriaOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigCachingRulesCriteria | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigCachingRulesCriteria | cdktf.IResolvable | undefined);
    private _condition?;
    get condition(): string;
    set condition(value: string);
    get conditionInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigCachingRulesCriteriaList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigCachingRulesCriteria[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigCachingRulesCriteriaOutputReference;
}
export interface WaasWaasPolicyWafConfigCachingRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#caching_duration WaasWaasPolicy#caching_duration}
    */
    readonly cachingDuration?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#client_caching_duration WaasWaasPolicy#client_caching_duration}
    */
    readonly clientCachingDuration?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_client_caching_enabled WaasWaasPolicy#is_client_caching_enabled}
    */
    readonly isClientCachingEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#key WaasWaasPolicy#key}
    */
    readonly key?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name: string;
    /**
    * criteria block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#criteria WaasWaasPolicy#criteria}
    */
    readonly criteria: WaasWaasPolicyWafConfigCachingRulesCriteria[] | cdktf.IResolvable;
}
export declare function waasWaasPolicyWafConfigCachingRulesToTerraform(struct?: WaasWaasPolicyWafConfigCachingRules | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigCachingRulesToHclTerraform(struct?: WaasWaasPolicyWafConfigCachingRules | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigCachingRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigCachingRules | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigCachingRules | cdktf.IResolvable | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    get actionInput(): string | undefined;
    private _cachingDuration?;
    get cachingDuration(): string;
    set cachingDuration(value: string);
    resetCachingDuration(): void;
    get cachingDurationInput(): string | undefined;
    private _clientCachingDuration?;
    get clientCachingDuration(): string;
    set clientCachingDuration(value: string);
    resetClientCachingDuration(): void;
    get clientCachingDurationInput(): string | undefined;
    private _isClientCachingEnabled?;
    get isClientCachingEnabled(): boolean | cdktf.IResolvable;
    set isClientCachingEnabled(value: boolean | cdktf.IResolvable);
    resetIsClientCachingEnabled(): void;
    get isClientCachingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _criteria;
    get criteria(): WaasWaasPolicyWafConfigCachingRulesCriteriaList;
    putCriteria(value: WaasWaasPolicyWafConfigCachingRulesCriteria[] | cdktf.IResolvable): void;
    get criteriaInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigCachingRulesCriteria[] | undefined;
}
export declare class WaasWaasPolicyWafConfigCachingRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigCachingRules[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigCachingRulesOutputReference;
}
export interface WaasWaasPolicyWafConfigCaptchas {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#failure_message WaasWaasPolicy#failure_message}
    */
    readonly failureMessage: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#footer_text WaasWaasPolicy#footer_text}
    */
    readonly footerText?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#header_text WaasWaasPolicy#header_text}
    */
    readonly headerText?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#session_expiration_in_seconds WaasWaasPolicy#session_expiration_in_seconds}
    */
    readonly sessionExpirationInSeconds: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#submit_label WaasWaasPolicy#submit_label}
    */
    readonly submitLabel: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#title WaasWaasPolicy#title}
    */
    readonly title: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#url WaasWaasPolicy#url}
    */
    readonly url: string;
}
export declare function waasWaasPolicyWafConfigCaptchasToTerraform(struct?: WaasWaasPolicyWafConfigCaptchas | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigCaptchasToHclTerraform(struct?: WaasWaasPolicyWafConfigCaptchas | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigCaptchasOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigCaptchas | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigCaptchas | cdktf.IResolvable | undefined);
    private _failureMessage?;
    get failureMessage(): string;
    set failureMessage(value: string);
    get failureMessageInput(): string | undefined;
    private _footerText?;
    get footerText(): string;
    set footerText(value: string);
    resetFooterText(): void;
    get footerTextInput(): string | undefined;
    private _headerText?;
    get headerText(): string;
    set headerText(value: string);
    resetHeaderText(): void;
    get headerTextInput(): string | undefined;
    private _sessionExpirationInSeconds?;
    get sessionExpirationInSeconds(): number;
    set sessionExpirationInSeconds(value: number);
    get sessionExpirationInSecondsInput(): number | undefined;
    private _submitLabel?;
    get submitLabel(): string;
    set submitLabel(value: string);
    get submitLabelInput(): string | undefined;
    private _title?;
    get title(): string;
    set title(value: string);
    get titleInput(): string | undefined;
    private _url?;
    get url(): string;
    set url(value: string);
    get urlInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigCaptchasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigCaptchas[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigCaptchasOutputReference;
}
export interface WaasWaasPolicyWafConfigCustomProtectionRulesExclusions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#exclusions WaasWaasPolicy#exclusions}
    */
    readonly exclusions?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#target WaasWaasPolicy#target}
    */
    readonly target?: string;
}
export declare function waasWaasPolicyWafConfigCustomProtectionRulesExclusionsToTerraform(struct?: WaasWaasPolicyWafConfigCustomProtectionRulesExclusions | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigCustomProtectionRulesExclusionsToHclTerraform(struct?: WaasWaasPolicyWafConfigCustomProtectionRulesExclusions | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigCustomProtectionRulesExclusionsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigCustomProtectionRulesExclusions | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigCustomProtectionRulesExclusions | cdktf.IResolvable | undefined);
    private _exclusions?;
    get exclusions(): string[];
    set exclusions(value: string[]);
    resetExclusions(): void;
    get exclusionsInput(): string[] | undefined;
    private _target?;
    get target(): string;
    set target(value: string);
    resetTarget(): void;
    get targetInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigCustomProtectionRulesExclusionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigCustomProtectionRulesExclusions[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigCustomProtectionRulesExclusionsOutputReference;
}
export interface WaasWaasPolicyWafConfigCustomProtectionRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#id WaasWaasPolicy#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * exclusions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#exclusions WaasWaasPolicy#exclusions}
    */
    readonly exclusions?: WaasWaasPolicyWafConfigCustomProtectionRulesExclusions[] | cdktf.IResolvable;
}
export declare function waasWaasPolicyWafConfigCustomProtectionRulesToTerraform(struct?: WaasWaasPolicyWafConfigCustomProtectionRules | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigCustomProtectionRulesToHclTerraform(struct?: WaasWaasPolicyWafConfigCustomProtectionRules | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigCustomProtectionRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigCustomProtectionRules | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigCustomProtectionRules | cdktf.IResolvable | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    resetAction(): void;
    get actionInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _exclusions;
    get exclusions(): WaasWaasPolicyWafConfigCustomProtectionRulesExclusionsList;
    putExclusions(value: WaasWaasPolicyWafConfigCustomProtectionRulesExclusions[] | cdktf.IResolvable): void;
    resetExclusions(): void;
    get exclusionsInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigCustomProtectionRulesExclusions[] | undefined;
}
export declare class WaasWaasPolicyWafConfigCustomProtectionRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigCustomProtectionRules[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigCustomProtectionRulesOutputReference;
}
export interface WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_action WaasWaasPolicy#block_action}
    */
    readonly blockAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_code WaasWaasPolicy#block_error_page_code}
    */
    readonly blockErrorPageCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_description WaasWaasPolicy#block_error_page_description}
    */
    readonly blockErrorPageDescription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_message WaasWaasPolicy#block_error_page_message}
    */
    readonly blockErrorPageMessage?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_response_code WaasWaasPolicy#block_response_code}
    */
    readonly blockResponseCode?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_footer WaasWaasPolicy#captcha_footer}
    */
    readonly captchaFooter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_header WaasWaasPolicy#captcha_header}
    */
    readonly captchaHeader?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_submit_label WaasWaasPolicy#captcha_submit_label}
    */
    readonly captchaSubmitLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_title WaasWaasPolicy#captcha_title}
    */
    readonly captchaTitle?: string;
}
export declare function waasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettingsToTerraform(struct?: WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettingsOutputReference | WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings): any;
export declare function waasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettingsToHclTerraform(struct?: WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettingsOutputReference | WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings): any;
export declare class WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettingsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings | undefined);
    private _blockAction?;
    get blockAction(): string;
    set blockAction(value: string);
    resetBlockAction(): void;
    get blockActionInput(): string | undefined;
    private _blockErrorPageCode?;
    get blockErrorPageCode(): string;
    set blockErrorPageCode(value: string);
    resetBlockErrorPageCode(): void;
    get blockErrorPageCodeInput(): string | undefined;
    private _blockErrorPageDescription?;
    get blockErrorPageDescription(): string;
    set blockErrorPageDescription(value: string);
    resetBlockErrorPageDescription(): void;
    get blockErrorPageDescriptionInput(): string | undefined;
    private _blockErrorPageMessage?;
    get blockErrorPageMessage(): string;
    set blockErrorPageMessage(value: string);
    resetBlockErrorPageMessage(): void;
    get blockErrorPageMessageInput(): string | undefined;
    private _blockResponseCode?;
    get blockResponseCode(): number;
    set blockResponseCode(value: number);
    resetBlockResponseCode(): void;
    get blockResponseCodeInput(): number | undefined;
    private _captchaFooter?;
    get captchaFooter(): string;
    set captchaFooter(value: string);
    resetCaptchaFooter(): void;
    get captchaFooterInput(): string | undefined;
    private _captchaHeader?;
    get captchaHeader(): string;
    set captchaHeader(value: string);
    resetCaptchaHeader(): void;
    get captchaHeaderInput(): string | undefined;
    private _captchaSubmitLabel?;
    get captchaSubmitLabel(): string;
    set captchaSubmitLabel(value: string);
    resetCaptchaSubmitLabel(): void;
    get captchaSubmitLabelInput(): string | undefined;
    private _captchaTitle?;
    get captchaTitle(): string;
    set captchaTitle(value: string);
    resetCaptchaTitle(): void;
    get captchaTitleInput(): string | undefined;
}
export interface WaasWaasPolicyWafConfigDeviceFingerprintChallenge {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action_expiration_in_seconds WaasWaasPolicy#action_expiration_in_seconds}
    */
    readonly actionExpirationInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#failure_threshold WaasWaasPolicy#failure_threshold}
    */
    readonly failureThreshold?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#failure_threshold_expiration_in_seconds WaasWaasPolicy#failure_threshold_expiration_in_seconds}
    */
    readonly failureThresholdExpirationInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_enabled WaasWaasPolicy#is_enabled}
    */
    readonly isEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_address_count WaasWaasPolicy#max_address_count}
    */
    readonly maxAddressCount?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_address_count_expiration_in_seconds WaasWaasPolicy#max_address_count_expiration_in_seconds}
    */
    readonly maxAddressCountExpirationInSeconds?: number;
    /**
    * challenge_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#challenge_settings WaasWaasPolicy#challenge_settings}
    */
    readonly challengeSettings?: WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings;
}
export declare function waasWaasPolicyWafConfigDeviceFingerprintChallengeToTerraform(struct?: WaasWaasPolicyWafConfigDeviceFingerprintChallengeOutputReference | WaasWaasPolicyWafConfigDeviceFingerprintChallenge): any;
export declare function waasWaasPolicyWafConfigDeviceFingerprintChallengeToHclTerraform(struct?: WaasWaasPolicyWafConfigDeviceFingerprintChallengeOutputReference | WaasWaasPolicyWafConfigDeviceFingerprintChallenge): any;
export declare class WaasWaasPolicyWafConfigDeviceFingerprintChallengeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigDeviceFingerprintChallenge | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigDeviceFingerprintChallenge | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    resetAction(): void;
    get actionInput(): string | undefined;
    private _actionExpirationInSeconds?;
    get actionExpirationInSeconds(): number;
    set actionExpirationInSeconds(value: number);
    resetActionExpirationInSeconds(): void;
    get actionExpirationInSecondsInput(): number | undefined;
    private _failureThreshold?;
    get failureThreshold(): number;
    set failureThreshold(value: number);
    resetFailureThreshold(): void;
    get failureThresholdInput(): number | undefined;
    private _failureThresholdExpirationInSeconds?;
    get failureThresholdExpirationInSeconds(): number;
    set failureThresholdExpirationInSeconds(value: number);
    resetFailureThresholdExpirationInSeconds(): void;
    get failureThresholdExpirationInSecondsInput(): number | undefined;
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _maxAddressCount?;
    get maxAddressCount(): number;
    set maxAddressCount(value: number);
    resetMaxAddressCount(): void;
    get maxAddressCountInput(): number | undefined;
    private _maxAddressCountExpirationInSeconds?;
    get maxAddressCountExpirationInSeconds(): number;
    set maxAddressCountExpirationInSeconds(value: number);
    resetMaxAddressCountExpirationInSeconds(): void;
    get maxAddressCountExpirationInSecondsInput(): number | undefined;
    private _challengeSettings;
    get challengeSettings(): WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettingsOutputReference;
    putChallengeSettings(value: WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings): void;
    resetChallengeSettings(): void;
    get challengeSettingsInput(): WaasWaasPolicyWafConfigDeviceFingerprintChallengeChallengeSettings | undefined;
}
export interface WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_action WaasWaasPolicy#block_action}
    */
    readonly blockAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_code WaasWaasPolicy#block_error_page_code}
    */
    readonly blockErrorPageCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_description WaasWaasPolicy#block_error_page_description}
    */
    readonly blockErrorPageDescription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_message WaasWaasPolicy#block_error_page_message}
    */
    readonly blockErrorPageMessage?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_response_code WaasWaasPolicy#block_response_code}
    */
    readonly blockResponseCode?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_footer WaasWaasPolicy#captcha_footer}
    */
    readonly captchaFooter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_header WaasWaasPolicy#captcha_header}
    */
    readonly captchaHeader?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_submit_label WaasWaasPolicy#captcha_submit_label}
    */
    readonly captchaSubmitLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_title WaasWaasPolicy#captcha_title}
    */
    readonly captchaTitle?: string;
}
export declare function waasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettingsToTerraform(struct?: WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettingsOutputReference | WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings): any;
export declare function waasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettingsToHclTerraform(struct?: WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettingsOutputReference | WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings): any;
export declare class WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettingsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings | undefined);
    private _blockAction?;
    get blockAction(): string;
    set blockAction(value: string);
    resetBlockAction(): void;
    get blockActionInput(): string | undefined;
    private _blockErrorPageCode?;
    get blockErrorPageCode(): string;
    set blockErrorPageCode(value: string);
    resetBlockErrorPageCode(): void;
    get blockErrorPageCodeInput(): string | undefined;
    private _blockErrorPageDescription?;
    get blockErrorPageDescription(): string;
    set blockErrorPageDescription(value: string);
    resetBlockErrorPageDescription(): void;
    get blockErrorPageDescriptionInput(): string | undefined;
    private _blockErrorPageMessage?;
    get blockErrorPageMessage(): string;
    set blockErrorPageMessage(value: string);
    resetBlockErrorPageMessage(): void;
    get blockErrorPageMessageInput(): string | undefined;
    private _blockResponseCode?;
    get blockResponseCode(): number;
    set blockResponseCode(value: number);
    resetBlockResponseCode(): void;
    get blockResponseCodeInput(): number | undefined;
    private _captchaFooter?;
    get captchaFooter(): string;
    set captchaFooter(value: string);
    resetCaptchaFooter(): void;
    get captchaFooterInput(): string | undefined;
    private _captchaHeader?;
    get captchaHeader(): string;
    set captchaHeader(value: string);
    resetCaptchaHeader(): void;
    get captchaHeaderInput(): string | undefined;
    private _captchaSubmitLabel?;
    get captchaSubmitLabel(): string;
    set captchaSubmitLabel(value: string);
    resetCaptchaSubmitLabel(): void;
    get captchaSubmitLabelInput(): string | undefined;
    private _captchaTitle?;
    get captchaTitle(): string;
    set captchaTitle(value: string);
    resetCaptchaTitle(): void;
    get captchaTitleInput(): string | undefined;
}
export interface WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value: string;
}
export declare function waasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeaderToTerraform(struct?: WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeaderOutputReference | WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader): any;
export declare function waasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeaderToHclTerraform(struct?: WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeaderOutputReference | WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader): any;
export declare class WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeaderOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export interface WaasWaasPolicyWafConfigHumanInteractionChallenge {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action_expiration_in_seconds WaasWaasPolicy#action_expiration_in_seconds}
    */
    readonly actionExpirationInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#failure_threshold WaasWaasPolicy#failure_threshold}
    */
    readonly failureThreshold?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#failure_threshold_expiration_in_seconds WaasWaasPolicy#failure_threshold_expiration_in_seconds}
    */
    readonly failureThresholdExpirationInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#interaction_threshold WaasWaasPolicy#interaction_threshold}
    */
    readonly interactionThreshold?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_enabled WaasWaasPolicy#is_enabled}
    */
    readonly isEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_nat_enabled WaasWaasPolicy#is_nat_enabled}
    */
    readonly isNatEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#recording_period_in_seconds WaasWaasPolicy#recording_period_in_seconds}
    */
    readonly recordingPeriodInSeconds?: number;
    /**
    * challenge_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#challenge_settings WaasWaasPolicy#challenge_settings}
    */
    readonly challengeSettings?: WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings;
    /**
    * set_http_header block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#set_http_header WaasWaasPolicy#set_http_header}
    */
    readonly setHttpHeader?: WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader;
}
export declare function waasWaasPolicyWafConfigHumanInteractionChallengeToTerraform(struct?: WaasWaasPolicyWafConfigHumanInteractionChallengeOutputReference | WaasWaasPolicyWafConfigHumanInteractionChallenge): any;
export declare function waasWaasPolicyWafConfigHumanInteractionChallengeToHclTerraform(struct?: WaasWaasPolicyWafConfigHumanInteractionChallengeOutputReference | WaasWaasPolicyWafConfigHumanInteractionChallenge): any;
export declare class WaasWaasPolicyWafConfigHumanInteractionChallengeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigHumanInteractionChallenge | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigHumanInteractionChallenge | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    resetAction(): void;
    get actionInput(): string | undefined;
    private _actionExpirationInSeconds?;
    get actionExpirationInSeconds(): number;
    set actionExpirationInSeconds(value: number);
    resetActionExpirationInSeconds(): void;
    get actionExpirationInSecondsInput(): number | undefined;
    private _failureThreshold?;
    get failureThreshold(): number;
    set failureThreshold(value: number);
    resetFailureThreshold(): void;
    get failureThresholdInput(): number | undefined;
    private _failureThresholdExpirationInSeconds?;
    get failureThresholdExpirationInSeconds(): number;
    set failureThresholdExpirationInSeconds(value: number);
    resetFailureThresholdExpirationInSeconds(): void;
    get failureThresholdExpirationInSecondsInput(): number | undefined;
    private _interactionThreshold?;
    get interactionThreshold(): number;
    set interactionThreshold(value: number);
    resetInteractionThreshold(): void;
    get interactionThresholdInput(): number | undefined;
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isNatEnabled?;
    get isNatEnabled(): boolean | cdktf.IResolvable;
    set isNatEnabled(value: boolean | cdktf.IResolvable);
    resetIsNatEnabled(): void;
    get isNatEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _recordingPeriodInSeconds?;
    get recordingPeriodInSeconds(): number;
    set recordingPeriodInSeconds(value: number);
    resetRecordingPeriodInSeconds(): void;
    get recordingPeriodInSecondsInput(): number | undefined;
    private _challengeSettings;
    get challengeSettings(): WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettingsOutputReference;
    putChallengeSettings(value: WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings): void;
    resetChallengeSettings(): void;
    get challengeSettingsInput(): WaasWaasPolicyWafConfigHumanInteractionChallengeChallengeSettings | undefined;
    private _setHttpHeader;
    get setHttpHeader(): WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeaderOutputReference;
    putSetHttpHeader(value: WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader): void;
    resetSetHttpHeader(): void;
    get setHttpHeaderInput(): WaasWaasPolicyWafConfigHumanInteractionChallengeSetHttpHeader | undefined;
}
export interface WaasWaasPolicyWafConfigJsChallengeChallengeSettings {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_action WaasWaasPolicy#block_action}
    */
    readonly blockAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_code WaasWaasPolicy#block_error_page_code}
    */
    readonly blockErrorPageCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_description WaasWaasPolicy#block_error_page_description}
    */
    readonly blockErrorPageDescription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_message WaasWaasPolicy#block_error_page_message}
    */
    readonly blockErrorPageMessage?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_response_code WaasWaasPolicy#block_response_code}
    */
    readonly blockResponseCode?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_footer WaasWaasPolicy#captcha_footer}
    */
    readonly captchaFooter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_header WaasWaasPolicy#captcha_header}
    */
    readonly captchaHeader?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_submit_label WaasWaasPolicy#captcha_submit_label}
    */
    readonly captchaSubmitLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captcha_title WaasWaasPolicy#captcha_title}
    */
    readonly captchaTitle?: string;
}
export declare function waasWaasPolicyWafConfigJsChallengeChallengeSettingsToTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeChallengeSettingsOutputReference | WaasWaasPolicyWafConfigJsChallengeChallengeSettings): any;
export declare function waasWaasPolicyWafConfigJsChallengeChallengeSettingsToHclTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeChallengeSettingsOutputReference | WaasWaasPolicyWafConfigJsChallengeChallengeSettings): any;
export declare class WaasWaasPolicyWafConfigJsChallengeChallengeSettingsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigJsChallengeChallengeSettings | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigJsChallengeChallengeSettings | undefined);
    private _blockAction?;
    get blockAction(): string;
    set blockAction(value: string);
    resetBlockAction(): void;
    get blockActionInput(): string | undefined;
    private _blockErrorPageCode?;
    get blockErrorPageCode(): string;
    set blockErrorPageCode(value: string);
    resetBlockErrorPageCode(): void;
    get blockErrorPageCodeInput(): string | undefined;
    private _blockErrorPageDescription?;
    get blockErrorPageDescription(): string;
    set blockErrorPageDescription(value: string);
    resetBlockErrorPageDescription(): void;
    get blockErrorPageDescriptionInput(): string | undefined;
    private _blockErrorPageMessage?;
    get blockErrorPageMessage(): string;
    set blockErrorPageMessage(value: string);
    resetBlockErrorPageMessage(): void;
    get blockErrorPageMessageInput(): string | undefined;
    private _blockResponseCode?;
    get blockResponseCode(): number;
    set blockResponseCode(value: number);
    resetBlockResponseCode(): void;
    get blockResponseCodeInput(): number | undefined;
    private _captchaFooter?;
    get captchaFooter(): string;
    set captchaFooter(value: string);
    resetCaptchaFooter(): void;
    get captchaFooterInput(): string | undefined;
    private _captchaHeader?;
    get captchaHeader(): string;
    set captchaHeader(value: string);
    resetCaptchaHeader(): void;
    get captchaHeaderInput(): string | undefined;
    private _captchaSubmitLabel?;
    get captchaSubmitLabel(): string;
    set captchaSubmitLabel(value: string);
    resetCaptchaSubmitLabel(): void;
    get captchaSubmitLabelInput(): string | undefined;
    private _captchaTitle?;
    get captchaTitle(): string;
    set captchaTitle(value: string);
    resetCaptchaTitle(): void;
    get captchaTitleInput(): string | undefined;
}
export interface WaasWaasPolicyWafConfigJsChallengeCriteria {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#condition WaasWaasPolicy#condition}
    */
    readonly condition: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_case_sensitive WaasWaasPolicy#is_case_sensitive}
    */
    readonly isCaseSensitive?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value: string;
}
export declare function waasWaasPolicyWafConfigJsChallengeCriteriaToTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeCriteria | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigJsChallengeCriteriaToHclTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeCriteria | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigJsChallengeCriteriaOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigJsChallengeCriteria | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigJsChallengeCriteria | cdktf.IResolvable | undefined);
    private _condition?;
    get condition(): string;
    set condition(value: string);
    get conditionInput(): string | undefined;
    private _isCaseSensitive?;
    get isCaseSensitive(): boolean | cdktf.IResolvable;
    set isCaseSensitive(value: boolean | cdktf.IResolvable);
    resetIsCaseSensitive(): void;
    get isCaseSensitiveInput(): boolean | cdktf.IResolvable | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigJsChallengeCriteriaList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigJsChallengeCriteria[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigJsChallengeCriteriaOutputReference;
}
export interface WaasWaasPolicyWafConfigJsChallengeSetHttpHeader {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#value WaasWaasPolicy#value}
    */
    readonly value: string;
}
export declare function waasWaasPolicyWafConfigJsChallengeSetHttpHeaderToTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeSetHttpHeaderOutputReference | WaasWaasPolicyWafConfigJsChallengeSetHttpHeader): any;
export declare function waasWaasPolicyWafConfigJsChallengeSetHttpHeaderToHclTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeSetHttpHeaderOutputReference | WaasWaasPolicyWafConfigJsChallengeSetHttpHeader): any;
export declare class WaasWaasPolicyWafConfigJsChallengeSetHttpHeaderOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigJsChallengeSetHttpHeader | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigJsChallengeSetHttpHeader | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export interface WaasWaasPolicyWafConfigJsChallenge {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action WaasWaasPolicy#action}
    */
    readonly action?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#action_expiration_in_seconds WaasWaasPolicy#action_expiration_in_seconds}
    */
    readonly actionExpirationInSeconds?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#are_redirects_challenged WaasWaasPolicy#are_redirects_challenged}
    */
    readonly areRedirectsChallenged?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#failure_threshold WaasWaasPolicy#failure_threshold}
    */
    readonly failureThreshold?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_enabled WaasWaasPolicy#is_enabled}
    */
    readonly isEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_nat_enabled WaasWaasPolicy#is_nat_enabled}
    */
    readonly isNatEnabled?: boolean | cdktf.IResolvable;
    /**
    * challenge_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#challenge_settings WaasWaasPolicy#challenge_settings}
    */
    readonly challengeSettings?: WaasWaasPolicyWafConfigJsChallengeChallengeSettings;
    /**
    * criteria block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#criteria WaasWaasPolicy#criteria}
    */
    readonly criteria?: WaasWaasPolicyWafConfigJsChallengeCriteria[] | cdktf.IResolvable;
    /**
    * set_http_header block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#set_http_header WaasWaasPolicy#set_http_header}
    */
    readonly setHttpHeader?: WaasWaasPolicyWafConfigJsChallengeSetHttpHeader;
}
export declare function waasWaasPolicyWafConfigJsChallengeToTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeOutputReference | WaasWaasPolicyWafConfigJsChallenge): any;
export declare function waasWaasPolicyWafConfigJsChallengeToHclTerraform(struct?: WaasWaasPolicyWafConfigJsChallengeOutputReference | WaasWaasPolicyWafConfigJsChallenge): any;
export declare class WaasWaasPolicyWafConfigJsChallengeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigJsChallenge | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigJsChallenge | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    resetAction(): void;
    get actionInput(): string | undefined;
    private _actionExpirationInSeconds?;
    get actionExpirationInSeconds(): number;
    set actionExpirationInSeconds(value: number);
    resetActionExpirationInSeconds(): void;
    get actionExpirationInSecondsInput(): number | undefined;
    private _areRedirectsChallenged?;
    get areRedirectsChallenged(): boolean | cdktf.IResolvable;
    set areRedirectsChallenged(value: boolean | cdktf.IResolvable);
    resetAreRedirectsChallenged(): void;
    get areRedirectsChallengedInput(): boolean | cdktf.IResolvable | undefined;
    private _failureThreshold?;
    get failureThreshold(): number;
    set failureThreshold(value: number);
    resetFailureThreshold(): void;
    get failureThresholdInput(): number | undefined;
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isNatEnabled?;
    get isNatEnabled(): boolean | cdktf.IResolvable;
    set isNatEnabled(value: boolean | cdktf.IResolvable);
    resetIsNatEnabled(): void;
    get isNatEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _challengeSettings;
    get challengeSettings(): WaasWaasPolicyWafConfigJsChallengeChallengeSettingsOutputReference;
    putChallengeSettings(value: WaasWaasPolicyWafConfigJsChallengeChallengeSettings): void;
    resetChallengeSettings(): void;
    get challengeSettingsInput(): WaasWaasPolicyWafConfigJsChallengeChallengeSettings | undefined;
    private _criteria;
    get criteria(): WaasWaasPolicyWafConfigJsChallengeCriteriaList;
    putCriteria(value: WaasWaasPolicyWafConfigJsChallengeCriteria[] | cdktf.IResolvable): void;
    resetCriteria(): void;
    get criteriaInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigJsChallengeCriteria[] | undefined;
    private _setHttpHeader;
    get setHttpHeader(): WaasWaasPolicyWafConfigJsChallengeSetHttpHeaderOutputReference;
    putSetHttpHeader(value: WaasWaasPolicyWafConfigJsChallengeSetHttpHeader): void;
    resetSetHttpHeader(): void;
    get setHttpHeaderInput(): WaasWaasPolicyWafConfigJsChallengeSetHttpHeader | undefined;
}
export interface WaasWaasPolicyWafConfigProtectionSettings {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#allowed_http_methods WaasWaasPolicy#allowed_http_methods}
    */
    readonly allowedHttpMethods?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_action WaasWaasPolicy#block_action}
    */
    readonly blockAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_code WaasWaasPolicy#block_error_page_code}
    */
    readonly blockErrorPageCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_description WaasWaasPolicy#block_error_page_description}
    */
    readonly blockErrorPageDescription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_error_page_message WaasWaasPolicy#block_error_page_message}
    */
    readonly blockErrorPageMessage?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#block_response_code WaasWaasPolicy#block_response_code}
    */
    readonly blockResponseCode?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#is_response_inspected WaasWaasPolicy#is_response_inspected}
    */
    readonly isResponseInspected?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_argument_count WaasWaasPolicy#max_argument_count}
    */
    readonly maxArgumentCount?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_name_length_per_argument WaasWaasPolicy#max_name_length_per_argument}
    */
    readonly maxNameLengthPerArgument?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_response_size_in_ki_b WaasWaasPolicy#max_response_size_in_ki_b}
    */
    readonly maxResponseSizeInKiB?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#max_total_name_length_of_arguments WaasWaasPolicy#max_total_name_length_of_arguments}
    */
    readonly maxTotalNameLengthOfArguments?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#media_types WaasWaasPolicy#media_types}
    */
    readonly mediaTypes?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#recommendations_period_in_days WaasWaasPolicy#recommendations_period_in_days}
    */
    readonly recommendationsPeriodInDays?: number;
}
export declare function waasWaasPolicyWafConfigProtectionSettingsToTerraform(struct?: WaasWaasPolicyWafConfigProtectionSettingsOutputReference | WaasWaasPolicyWafConfigProtectionSettings): any;
export declare function waasWaasPolicyWafConfigProtectionSettingsToHclTerraform(struct?: WaasWaasPolicyWafConfigProtectionSettingsOutputReference | WaasWaasPolicyWafConfigProtectionSettings): any;
export declare class WaasWaasPolicyWafConfigProtectionSettingsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfigProtectionSettings | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigProtectionSettings | undefined);
    private _allowedHttpMethods?;
    get allowedHttpMethods(): string[];
    set allowedHttpMethods(value: string[]);
    resetAllowedHttpMethods(): void;
    get allowedHttpMethodsInput(): string[] | undefined;
    private _blockAction?;
    get blockAction(): string;
    set blockAction(value: string);
    resetBlockAction(): void;
    get blockActionInput(): string | undefined;
    private _blockErrorPageCode?;
    get blockErrorPageCode(): string;
    set blockErrorPageCode(value: string);
    resetBlockErrorPageCode(): void;
    get blockErrorPageCodeInput(): string | undefined;
    private _blockErrorPageDescription?;
    get blockErrorPageDescription(): string;
    set blockErrorPageDescription(value: string);
    resetBlockErrorPageDescription(): void;
    get blockErrorPageDescriptionInput(): string | undefined;
    private _blockErrorPageMessage?;
    get blockErrorPageMessage(): string;
    set blockErrorPageMessage(value: string);
    resetBlockErrorPageMessage(): void;
    get blockErrorPageMessageInput(): string | undefined;
    private _blockResponseCode?;
    get blockResponseCode(): number;
    set blockResponseCode(value: number);
    resetBlockResponseCode(): void;
    get blockResponseCodeInput(): number | undefined;
    private _isResponseInspected?;
    get isResponseInspected(): boolean | cdktf.IResolvable;
    set isResponseInspected(value: boolean | cdktf.IResolvable);
    resetIsResponseInspected(): void;
    get isResponseInspectedInput(): boolean | cdktf.IResolvable | undefined;
    private _maxArgumentCount?;
    get maxArgumentCount(): number;
    set maxArgumentCount(value: number);
    resetMaxArgumentCount(): void;
    get maxArgumentCountInput(): number | undefined;
    private _maxNameLengthPerArgument?;
    get maxNameLengthPerArgument(): number;
    set maxNameLengthPerArgument(value: number);
    resetMaxNameLengthPerArgument(): void;
    get maxNameLengthPerArgumentInput(): number | undefined;
    private _maxResponseSizeInKiB?;
    get maxResponseSizeInKiB(): number;
    set maxResponseSizeInKiB(value: number);
    resetMaxResponseSizeInKiB(): void;
    get maxResponseSizeInKiBInput(): number | undefined;
    private _maxTotalNameLengthOfArguments?;
    get maxTotalNameLengthOfArguments(): number;
    set maxTotalNameLengthOfArguments(value: number);
    resetMaxTotalNameLengthOfArguments(): void;
    get maxTotalNameLengthOfArgumentsInput(): number | undefined;
    private _mediaTypes?;
    get mediaTypes(): string[];
    set mediaTypes(value: string[]);
    resetMediaTypes(): void;
    get mediaTypesInput(): string[] | undefined;
    private _recommendationsPeriodInDays?;
    get recommendationsPeriodInDays(): number;
    set recommendationsPeriodInDays(value: number);
    resetRecommendationsPeriodInDays(): void;
    get recommendationsPeriodInDaysInput(): number | undefined;
}
export interface WaasWaasPolicyWafConfigWhitelists {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#address_lists WaasWaasPolicy#address_lists}
    */
    readonly addressLists?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#addresses WaasWaasPolicy#addresses}
    */
    readonly addresses?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#name WaasWaasPolicy#name}
    */
    readonly name: string;
}
export declare function waasWaasPolicyWafConfigWhitelistsToTerraform(struct?: WaasWaasPolicyWafConfigWhitelists | cdktf.IResolvable): any;
export declare function waasWaasPolicyWafConfigWhitelistsToHclTerraform(struct?: WaasWaasPolicyWafConfigWhitelists | cdktf.IResolvable): any;
export declare class WaasWaasPolicyWafConfigWhitelistsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): WaasWaasPolicyWafConfigWhitelists | cdktf.IResolvable | undefined;
    set internalValue(value: WaasWaasPolicyWafConfigWhitelists | cdktf.IResolvable | undefined);
    private _addressLists?;
    get addressLists(): string[];
    set addressLists(value: string[]);
    resetAddressLists(): void;
    get addressListsInput(): string[] | undefined;
    private _addresses?;
    get addresses(): string[];
    set addresses(value: string[]);
    resetAddresses(): void;
    get addressesInput(): string[] | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
}
export declare class WaasWaasPolicyWafConfigWhitelistsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: WaasWaasPolicyWafConfigWhitelists[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): WaasWaasPolicyWafConfigWhitelistsOutputReference;
}
export interface WaasWaasPolicyWafConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#origin WaasWaasPolicy#origin}
    */
    readonly origin?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#origin_groups WaasWaasPolicy#origin_groups}
    */
    readonly originGroups?: string[];
    /**
    * access_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#access_rules WaasWaasPolicy#access_rules}
    */
    readonly accessRules?: WaasWaasPolicyWafConfigAccessRules[] | cdktf.IResolvable;
    /**
    * address_rate_limiting block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#address_rate_limiting WaasWaasPolicy#address_rate_limiting}
    */
    readonly addressRateLimiting?: WaasWaasPolicyWafConfigAddressRateLimiting;
    /**
    * caching_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#caching_rules WaasWaasPolicy#caching_rules}
    */
    readonly cachingRules?: WaasWaasPolicyWafConfigCachingRules[] | cdktf.IResolvable;
    /**
    * captchas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#captchas WaasWaasPolicy#captchas}
    */
    readonly captchas?: WaasWaasPolicyWafConfigCaptchas[] | cdktf.IResolvable;
    /**
    * custom_protection_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#custom_protection_rules WaasWaasPolicy#custom_protection_rules}
    */
    readonly customProtectionRules?: WaasWaasPolicyWafConfigCustomProtectionRules[] | cdktf.IResolvable;
    /**
    * device_fingerprint_challenge block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#device_fingerprint_challenge WaasWaasPolicy#device_fingerprint_challenge}
    */
    readonly deviceFingerprintChallenge?: WaasWaasPolicyWafConfigDeviceFingerprintChallenge;
    /**
    * human_interaction_challenge block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#human_interaction_challenge WaasWaasPolicy#human_interaction_challenge}
    */
    readonly humanInteractionChallenge?: WaasWaasPolicyWafConfigHumanInteractionChallenge;
    /**
    * js_challenge block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#js_challenge WaasWaasPolicy#js_challenge}
    */
    readonly jsChallenge?: WaasWaasPolicyWafConfigJsChallenge;
    /**
    * protection_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#protection_settings WaasWaasPolicy#protection_settings}
    */
    readonly protectionSettings?: WaasWaasPolicyWafConfigProtectionSettings;
    /**
    * whitelists block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#whitelists WaasWaasPolicy#whitelists}
    */
    readonly whitelists?: WaasWaasPolicyWafConfigWhitelists[] | cdktf.IResolvable;
}
export declare function waasWaasPolicyWafConfigToTerraform(struct?: WaasWaasPolicyWafConfigOutputReference | WaasWaasPolicyWafConfig): any;
export declare function waasWaasPolicyWafConfigToHclTerraform(struct?: WaasWaasPolicyWafConfigOutputReference | WaasWaasPolicyWafConfig): any;
export declare class WaasWaasPolicyWafConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): WaasWaasPolicyWafConfig | undefined;
    set internalValue(value: WaasWaasPolicyWafConfig | undefined);
    private _origin?;
    get origin(): string;
    set origin(value: string);
    resetOrigin(): void;
    get originInput(): string | undefined;
    private _originGroups?;
    get originGroups(): string[];
    set originGroups(value: string[]);
    resetOriginGroups(): void;
    get originGroupsInput(): string[] | undefined;
    private _accessRules;
    get accessRules(): WaasWaasPolicyWafConfigAccessRulesList;
    putAccessRules(value: WaasWaasPolicyWafConfigAccessRules[] | cdktf.IResolvable): void;
    resetAccessRules(): void;
    get accessRulesInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigAccessRules[] | undefined;
    private _addressRateLimiting;
    get addressRateLimiting(): WaasWaasPolicyWafConfigAddressRateLimitingOutputReference;
    putAddressRateLimiting(value: WaasWaasPolicyWafConfigAddressRateLimiting): void;
    resetAddressRateLimiting(): void;
    get addressRateLimitingInput(): WaasWaasPolicyWafConfigAddressRateLimiting | undefined;
    private _cachingRules;
    get cachingRules(): WaasWaasPolicyWafConfigCachingRulesList;
    putCachingRules(value: WaasWaasPolicyWafConfigCachingRules[] | cdktf.IResolvable): void;
    resetCachingRules(): void;
    get cachingRulesInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigCachingRules[] | undefined;
    private _captchas;
    get captchas(): WaasWaasPolicyWafConfigCaptchasList;
    putCaptchas(value: WaasWaasPolicyWafConfigCaptchas[] | cdktf.IResolvable): void;
    resetCaptchas(): void;
    get captchasInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigCaptchas[] | undefined;
    private _customProtectionRules;
    get customProtectionRules(): WaasWaasPolicyWafConfigCustomProtectionRulesList;
    putCustomProtectionRules(value: WaasWaasPolicyWafConfigCustomProtectionRules[] | cdktf.IResolvable): void;
    resetCustomProtectionRules(): void;
    get customProtectionRulesInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigCustomProtectionRules[] | undefined;
    private _deviceFingerprintChallenge;
    get deviceFingerprintChallenge(): WaasWaasPolicyWafConfigDeviceFingerprintChallengeOutputReference;
    putDeviceFingerprintChallenge(value: WaasWaasPolicyWafConfigDeviceFingerprintChallenge): void;
    resetDeviceFingerprintChallenge(): void;
    get deviceFingerprintChallengeInput(): WaasWaasPolicyWafConfigDeviceFingerprintChallenge | undefined;
    private _humanInteractionChallenge;
    get humanInteractionChallenge(): WaasWaasPolicyWafConfigHumanInteractionChallengeOutputReference;
    putHumanInteractionChallenge(value: WaasWaasPolicyWafConfigHumanInteractionChallenge): void;
    resetHumanInteractionChallenge(): void;
    get humanInteractionChallengeInput(): WaasWaasPolicyWafConfigHumanInteractionChallenge | undefined;
    private _jsChallenge;
    get jsChallenge(): WaasWaasPolicyWafConfigJsChallengeOutputReference;
    putJsChallenge(value: WaasWaasPolicyWafConfigJsChallenge): void;
    resetJsChallenge(): void;
    get jsChallengeInput(): WaasWaasPolicyWafConfigJsChallenge | undefined;
    private _protectionSettings;
    get protectionSettings(): WaasWaasPolicyWafConfigProtectionSettingsOutputReference;
    putProtectionSettings(value: WaasWaasPolicyWafConfigProtectionSettings): void;
    resetProtectionSettings(): void;
    get protectionSettingsInput(): WaasWaasPolicyWafConfigProtectionSettings | undefined;
    private _whitelists;
    get whitelists(): WaasWaasPolicyWafConfigWhitelistsList;
    putWhitelists(value: WaasWaasPolicyWafConfigWhitelists[] | cdktf.IResolvable): void;
    resetWhitelists(): void;
    get whitelistsInput(): cdktf.IResolvable | WaasWaasPolicyWafConfigWhitelists[] | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy oci_waas_waas_policy}
*/
export declare class WaasWaasPolicy extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_waas_waas_policy";
    /**
    * Generates CDKTF code for importing a WaasWaasPolicy resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the WaasWaasPolicy to import
    * @param importFromId The id of the existing WaasWaasPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the WaasWaasPolicy to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/waas_waas_policy oci_waas_waas_policy} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options WaasWaasPolicyConfig
    */
    constructor(scope: Construct, id: string, config: WaasWaasPolicyConfig);
    private _additionalDomains?;
    get additionalDomains(): string[];
    set additionalDomains(value: string[]);
    resetAdditionalDomains(): void;
    get additionalDomainsInput(): string[] | undefined;
    get cname(): string;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _domain?;
    get domain(): string;
    set domain(value: string);
    get domainInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get state(): string;
    get timeCreated(): string;
    private _originGroups;
    get originGroups(): WaasWaasPolicyOriginGroupsList;
    putOriginGroups(value: WaasWaasPolicyOriginGroups[] | cdktf.IResolvable): void;
    resetOriginGroups(): void;
    get originGroupsInput(): cdktf.IResolvable | WaasWaasPolicyOriginGroups[] | undefined;
    private _origins;
    get origins(): WaasWaasPolicyOriginsList;
    putOrigins(value: WaasWaasPolicyOrigins[] | cdktf.IResolvable): void;
    resetOrigins(): void;
    get originsInput(): cdktf.IResolvable | WaasWaasPolicyOrigins[] | undefined;
    private _policyConfig;
    get policyConfig(): WaasWaasPolicyPolicyConfigOutputReference;
    putPolicyConfig(value: WaasWaasPolicyPolicyConfig): void;
    resetPolicyConfig(): void;
    get policyConfigInput(): WaasWaasPolicyPolicyConfig | undefined;
    private _timeouts;
    get timeouts(): WaasWaasPolicyTimeoutsOutputReference;
    putTimeouts(value: WaasWaasPolicyTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | WaasWaasPolicyTimeouts | undefined;
    private _wafConfig;
    get wafConfig(): WaasWaasPolicyWafConfigOutputReference;
    putWafConfig(value: WaasWaasPolicyWafConfig): void;
    resetWafConfig(): void;
    get wafConfigInput(): WaasWaasPolicyWafConfig | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
