/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ModelArmorTemplateConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#id ModelArmorTemplate#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;
    /**
    * Labels as key value pairs
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#labels ModelArmorTemplate#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Resource ID segment making up resource 'name'. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#location ModelArmorTemplate#location}
    */
    readonly location: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#project ModelArmorTemplate#project}
    */
    readonly project?: string;
    /**
    * Id of the requesting object
    * If auto-generating Id server-side, remove this field and
    * template_id from the method_signature of Create RPC
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#template_id ModelArmorTemplate#template_id}
    */
    readonly templateId: string;
    /**
    * filter_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#filter_config ModelArmorTemplate#filter_config}
    */
    readonly filterConfig: ModelArmorTemplateFilterConfig;
    /**
    * template_metadata block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#template_metadata ModelArmorTemplate#template_metadata}
    */
    readonly templateMetadata?: ModelArmorTemplateTemplateMetadata;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#timeouts ModelArmorTemplate#timeouts}
    */
    readonly timeouts?: ModelArmorTemplateTimeouts;
}
export interface ModelArmorTemplateFilterConfigMaliciousUriFilterSettings {
    /**
    * Tells whether the Malicious URI filter is enabled or disabled.
    * Possible values:
    * ENABLED
    * DISABLED
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#filter_enforcement ModelArmorTemplate#filter_enforcement}
    */
    readonly filterEnforcement?: string;
}
export declare function modelArmorTemplateFilterConfigMaliciousUriFilterSettingsToTerraform(struct?: ModelArmorTemplateFilterConfigMaliciousUriFilterSettingsOutputReference | ModelArmorTemplateFilterConfigMaliciousUriFilterSettings): any;
export declare function modelArmorTemplateFilterConfigMaliciousUriFilterSettingsToHclTerraform(struct?: ModelArmorTemplateFilterConfigMaliciousUriFilterSettingsOutputReference | ModelArmorTemplateFilterConfigMaliciousUriFilterSettings): any;
export declare class ModelArmorTemplateFilterConfigMaliciousUriFilterSettingsOutputReference 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(): ModelArmorTemplateFilterConfigMaliciousUriFilterSettings | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigMaliciousUriFilterSettings | undefined);
    private _filterEnforcement?;
    get filterEnforcement(): string;
    set filterEnforcement(value: string);
    resetFilterEnforcement(): void;
    get filterEnforcementInput(): string | undefined;
}
export interface ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings {
    /**
    * Possible values:
    * LOW_AND_ABOVE
    * MEDIUM_AND_ABOVE
    * HIGH
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#confidence_level ModelArmorTemplate#confidence_level}
    */
    readonly confidenceLevel?: string;
    /**
    * Tells whether Prompt injection and Jailbreak filter is enabled or
    * disabled.
    * Possible values:
    * ENABLED
    * DISABLED
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#filter_enforcement ModelArmorTemplate#filter_enforcement}
    */
    readonly filterEnforcement?: string;
}
export declare function modelArmorTemplateFilterConfigPiAndJailbreakFilterSettingsToTerraform(struct?: ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettingsOutputReference | ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings): any;
export declare function modelArmorTemplateFilterConfigPiAndJailbreakFilterSettingsToHclTerraform(struct?: ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettingsOutputReference | ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings): any;
export declare class ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettingsOutputReference 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(): ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings | undefined);
    private _confidenceLevel?;
    get confidenceLevel(): string;
    set confidenceLevel(value: string);
    resetConfidenceLevel(): void;
    get confidenceLevelInput(): string | undefined;
    private _filterEnforcement?;
    get filterEnforcement(): string;
    set filterEnforcement(value: string);
    resetFilterEnforcement(): void;
    get filterEnforcementInput(): string | undefined;
}
export interface ModelArmorTemplateFilterConfigRaiSettingsRaiFilters {
    /**
    * Possible values:
    * LOW_AND_ABOVE
    * MEDIUM_AND_ABOVE
    * HIGH
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#confidence_level ModelArmorTemplate#confidence_level}
    */
    readonly confidenceLevel?: string;
    /**
    * Possible values:
    * SEXUALLY_EXPLICIT
    * HATE_SPEECH
    * HARASSMENT
    * DANGEROUS
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#filter_type ModelArmorTemplate#filter_type}
    */
    readonly filterType: string;
}
export declare function modelArmorTemplateFilterConfigRaiSettingsRaiFiltersToTerraform(struct?: ModelArmorTemplateFilterConfigRaiSettingsRaiFilters | cdktf.IResolvable): any;
export declare function modelArmorTemplateFilterConfigRaiSettingsRaiFiltersToHclTerraform(struct?: ModelArmorTemplateFilterConfigRaiSettingsRaiFilters | cdktf.IResolvable): any;
export declare class ModelArmorTemplateFilterConfigRaiSettingsRaiFiltersOutputReference 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(): ModelArmorTemplateFilterConfigRaiSettingsRaiFilters | cdktf.IResolvable | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigRaiSettingsRaiFilters | cdktf.IResolvable | undefined);
    private _confidenceLevel?;
    get confidenceLevel(): string;
    set confidenceLevel(value: string);
    resetConfidenceLevel(): void;
    get confidenceLevelInput(): string | undefined;
    private _filterType?;
    get filterType(): string;
    set filterType(value: string);
    get filterTypeInput(): string | undefined;
}
export declare class ModelArmorTemplateFilterConfigRaiSettingsRaiFiltersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ModelArmorTemplateFilterConfigRaiSettingsRaiFilters[] | 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): ModelArmorTemplateFilterConfigRaiSettingsRaiFiltersOutputReference;
}
export interface ModelArmorTemplateFilterConfigRaiSettings {
    /**
    * rai_filters block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#rai_filters ModelArmorTemplate#rai_filters}
    */
    readonly raiFilters: ModelArmorTemplateFilterConfigRaiSettingsRaiFilters[] | cdktf.IResolvable;
}
export declare function modelArmorTemplateFilterConfigRaiSettingsToTerraform(struct?: ModelArmorTemplateFilterConfigRaiSettingsOutputReference | ModelArmorTemplateFilterConfigRaiSettings): any;
export declare function modelArmorTemplateFilterConfigRaiSettingsToHclTerraform(struct?: ModelArmorTemplateFilterConfigRaiSettingsOutputReference | ModelArmorTemplateFilterConfigRaiSettings): any;
export declare class ModelArmorTemplateFilterConfigRaiSettingsOutputReference 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(): ModelArmorTemplateFilterConfigRaiSettings | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigRaiSettings | undefined);
    private _raiFilters;
    get raiFilters(): ModelArmorTemplateFilterConfigRaiSettingsRaiFiltersList;
    putRaiFilters(value: ModelArmorTemplateFilterConfigRaiSettingsRaiFilters[] | cdktf.IResolvable): void;
    get raiFiltersInput(): cdktf.IResolvable | ModelArmorTemplateFilterConfigRaiSettingsRaiFilters[] | undefined;
}
export interface ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig {
    /**
    * Optional Sensitive Data Protection Deidentify template resource name.
    * If provided then DeidentifyContent action is performed during Sanitization
    * using this template and inspect template. The De-identified data will
    * be returned in SdpDeidentifyResult.
    * Note that all info-types present in the deidentify template must be present
    * in inspect template.
    * e.g.
    * 'projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#deidentify_template ModelArmorTemplate#deidentify_template}
    */
    readonly deidentifyTemplate?: string;
    /**
    * Sensitive Data Protection inspect template resource name
    * If only inspect template is provided (de-identify template not provided),
    * then Sensitive Data Protection InspectContent action is performed during
    * Sanitization. All Sensitive Data Protection findings identified during
    * inspection will be returned as SdpFinding in SdpInsepctionResult.
    * e.g:-
    * 'projects/{project}/locations/{location}/inspectTemplates/{inspect_template}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#inspect_template ModelArmorTemplate#inspect_template}
    */
    readonly inspectTemplate?: string;
}
export declare function modelArmorTemplateFilterConfigSdpSettingsAdvancedConfigToTerraform(struct?: ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfigOutputReference | ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig): any;
export declare function modelArmorTemplateFilterConfigSdpSettingsAdvancedConfigToHclTerraform(struct?: ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfigOutputReference | ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig): any;
export declare class ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfigOutputReference 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(): ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig | undefined);
    private _deidentifyTemplate?;
    get deidentifyTemplate(): string;
    set deidentifyTemplate(value: string);
    resetDeidentifyTemplate(): void;
    get deidentifyTemplateInput(): string | undefined;
    private _inspectTemplate?;
    get inspectTemplate(): string;
    set inspectTemplate(value: string);
    resetInspectTemplate(): void;
    get inspectTemplateInput(): string | undefined;
}
export interface ModelArmorTemplateFilterConfigSdpSettingsBasicConfig {
    /**
    * Tells whether the Sensitive Data Protection basic config is enabled or
    * disabled.
    * Possible values:
    * ENABLED
    * DISABLED
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#filter_enforcement ModelArmorTemplate#filter_enforcement}
    */
    readonly filterEnforcement?: string;
}
export declare function modelArmorTemplateFilterConfigSdpSettingsBasicConfigToTerraform(struct?: ModelArmorTemplateFilterConfigSdpSettingsBasicConfigOutputReference | ModelArmorTemplateFilterConfigSdpSettingsBasicConfig): any;
export declare function modelArmorTemplateFilterConfigSdpSettingsBasicConfigToHclTerraform(struct?: ModelArmorTemplateFilterConfigSdpSettingsBasicConfigOutputReference | ModelArmorTemplateFilterConfigSdpSettingsBasicConfig): any;
export declare class ModelArmorTemplateFilterConfigSdpSettingsBasicConfigOutputReference 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(): ModelArmorTemplateFilterConfigSdpSettingsBasicConfig | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigSdpSettingsBasicConfig | undefined);
    private _filterEnforcement?;
    get filterEnforcement(): string;
    set filterEnforcement(value: string);
    resetFilterEnforcement(): void;
    get filterEnforcementInput(): string | undefined;
}
export interface ModelArmorTemplateFilterConfigSdpSettings {
    /**
    * advanced_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#advanced_config ModelArmorTemplate#advanced_config}
    */
    readonly advancedConfig?: ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig;
    /**
    * basic_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#basic_config ModelArmorTemplate#basic_config}
    */
    readonly basicConfig?: ModelArmorTemplateFilterConfigSdpSettingsBasicConfig;
}
export declare function modelArmorTemplateFilterConfigSdpSettingsToTerraform(struct?: ModelArmorTemplateFilterConfigSdpSettingsOutputReference | ModelArmorTemplateFilterConfigSdpSettings): any;
export declare function modelArmorTemplateFilterConfigSdpSettingsToHclTerraform(struct?: ModelArmorTemplateFilterConfigSdpSettingsOutputReference | ModelArmorTemplateFilterConfigSdpSettings): any;
export declare class ModelArmorTemplateFilterConfigSdpSettingsOutputReference 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(): ModelArmorTemplateFilterConfigSdpSettings | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfigSdpSettings | undefined);
    private _advancedConfig;
    get advancedConfig(): ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfigOutputReference;
    putAdvancedConfig(value: ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig): void;
    resetAdvancedConfig(): void;
    get advancedConfigInput(): ModelArmorTemplateFilterConfigSdpSettingsAdvancedConfig | undefined;
    private _basicConfig;
    get basicConfig(): ModelArmorTemplateFilterConfigSdpSettingsBasicConfigOutputReference;
    putBasicConfig(value: ModelArmorTemplateFilterConfigSdpSettingsBasicConfig): void;
    resetBasicConfig(): void;
    get basicConfigInput(): ModelArmorTemplateFilterConfigSdpSettingsBasicConfig | undefined;
}
export interface ModelArmorTemplateFilterConfig {
    /**
    * malicious_uri_filter_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#malicious_uri_filter_settings ModelArmorTemplate#malicious_uri_filter_settings}
    */
    readonly maliciousUriFilterSettings?: ModelArmorTemplateFilterConfigMaliciousUriFilterSettings;
    /**
    * pi_and_jailbreak_filter_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#pi_and_jailbreak_filter_settings ModelArmorTemplate#pi_and_jailbreak_filter_settings}
    */
    readonly piAndJailbreakFilterSettings?: ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings;
    /**
    * rai_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#rai_settings ModelArmorTemplate#rai_settings}
    */
    readonly raiSettings?: ModelArmorTemplateFilterConfigRaiSettings;
    /**
    * sdp_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#sdp_settings ModelArmorTemplate#sdp_settings}
    */
    readonly sdpSettings?: ModelArmorTemplateFilterConfigSdpSettings;
}
export declare function modelArmorTemplateFilterConfigToTerraform(struct?: ModelArmorTemplateFilterConfigOutputReference | ModelArmorTemplateFilterConfig): any;
export declare function modelArmorTemplateFilterConfigToHclTerraform(struct?: ModelArmorTemplateFilterConfigOutputReference | ModelArmorTemplateFilterConfig): any;
export declare class ModelArmorTemplateFilterConfigOutputReference 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(): ModelArmorTemplateFilterConfig | undefined;
    set internalValue(value: ModelArmorTemplateFilterConfig | undefined);
    private _maliciousUriFilterSettings;
    get maliciousUriFilterSettings(): ModelArmorTemplateFilterConfigMaliciousUriFilterSettingsOutputReference;
    putMaliciousUriFilterSettings(value: ModelArmorTemplateFilterConfigMaliciousUriFilterSettings): void;
    resetMaliciousUriFilterSettings(): void;
    get maliciousUriFilterSettingsInput(): ModelArmorTemplateFilterConfigMaliciousUriFilterSettings | undefined;
    private _piAndJailbreakFilterSettings;
    get piAndJailbreakFilterSettings(): ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettingsOutputReference;
    putPiAndJailbreakFilterSettings(value: ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings): void;
    resetPiAndJailbreakFilterSettings(): void;
    get piAndJailbreakFilterSettingsInput(): ModelArmorTemplateFilterConfigPiAndJailbreakFilterSettings | undefined;
    private _raiSettings;
    get raiSettings(): ModelArmorTemplateFilterConfigRaiSettingsOutputReference;
    putRaiSettings(value: ModelArmorTemplateFilterConfigRaiSettings): void;
    resetRaiSettings(): void;
    get raiSettingsInput(): ModelArmorTemplateFilterConfigRaiSettings | undefined;
    private _sdpSettings;
    get sdpSettings(): ModelArmorTemplateFilterConfigSdpSettingsOutputReference;
    putSdpSettings(value: ModelArmorTemplateFilterConfigSdpSettings): void;
    resetSdpSettings(): void;
    get sdpSettingsInput(): ModelArmorTemplateFilterConfigSdpSettings | undefined;
}
export interface ModelArmorTemplateTemplateMetadataMultiLanguageDetection {
    /**
    * If true, multi language detection will be enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#enable_multi_language_detection ModelArmorTemplate#enable_multi_language_detection}
    */
    readonly enableMultiLanguageDetection: boolean | cdktf.IResolvable;
}
export declare function modelArmorTemplateTemplateMetadataMultiLanguageDetectionToTerraform(struct?: ModelArmorTemplateTemplateMetadataMultiLanguageDetectionOutputReference | ModelArmorTemplateTemplateMetadataMultiLanguageDetection): any;
export declare function modelArmorTemplateTemplateMetadataMultiLanguageDetectionToHclTerraform(struct?: ModelArmorTemplateTemplateMetadataMultiLanguageDetectionOutputReference | ModelArmorTemplateTemplateMetadataMultiLanguageDetection): any;
export declare class ModelArmorTemplateTemplateMetadataMultiLanguageDetectionOutputReference 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(): ModelArmorTemplateTemplateMetadataMultiLanguageDetection | undefined;
    set internalValue(value: ModelArmorTemplateTemplateMetadataMultiLanguageDetection | undefined);
    private _enableMultiLanguageDetection?;
    get enableMultiLanguageDetection(): boolean | cdktf.IResolvable;
    set enableMultiLanguageDetection(value: boolean | cdktf.IResolvable);
    get enableMultiLanguageDetectionInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ModelArmorTemplateTemplateMetadata {
    /**
    * Indicates the custom error code set by the user to be returned to the end
    * user if the LLM response trips Model Armor filters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#custom_llm_response_safety_error_code ModelArmorTemplate#custom_llm_response_safety_error_code}
    */
    readonly customLlmResponseSafetyErrorCode?: number;
    /**
    * Indicates the custom error message set by the user to be returned to the
    * end user if the LLM response trips Model Armor filters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#custom_llm_response_safety_error_message ModelArmorTemplate#custom_llm_response_safety_error_message}
    */
    readonly customLlmResponseSafetyErrorMessage?: string;
    /**
    * Indicates the custom error code set by the user to be returned to the end
    * user by the service extension if the prompt trips Model Armor filters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#custom_prompt_safety_error_code ModelArmorTemplate#custom_prompt_safety_error_code}
    */
    readonly customPromptSafetyErrorCode?: number;
    /**
    * Indicates the custom error message set by the user to be returned to the
    * end user if the prompt trips Model Armor filters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#custom_prompt_safety_error_message ModelArmorTemplate#custom_prompt_safety_error_message}
    */
    readonly customPromptSafetyErrorMessage?: string;
    /**
    * Possible values:
    * INSPECT_ONLY
    * INSPECT_AND_BLOCK
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#enforcement_type ModelArmorTemplate#enforcement_type}
    */
    readonly enforcementType?: string;
    /**
    * If true, partial detector failures should be ignored.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#ignore_partial_invocation_failures ModelArmorTemplate#ignore_partial_invocation_failures}
    */
    readonly ignorePartialInvocationFailures?: boolean | cdktf.IResolvable;
    /**
    * If true, log sanitize operations.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#log_sanitize_operations ModelArmorTemplate#log_sanitize_operations}
    */
    readonly logSanitizeOperations?: boolean | cdktf.IResolvable;
    /**
    * If true, log template crud operations.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#log_template_operations ModelArmorTemplate#log_template_operations}
    */
    readonly logTemplateOperations?: boolean | cdktf.IResolvable;
    /**
    * multi_language_detection block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#multi_language_detection ModelArmorTemplate#multi_language_detection}
    */
    readonly multiLanguageDetection?: ModelArmorTemplateTemplateMetadataMultiLanguageDetection;
}
export declare function modelArmorTemplateTemplateMetadataToTerraform(struct?: ModelArmorTemplateTemplateMetadataOutputReference | ModelArmorTemplateTemplateMetadata): any;
export declare function modelArmorTemplateTemplateMetadataToHclTerraform(struct?: ModelArmorTemplateTemplateMetadataOutputReference | ModelArmorTemplateTemplateMetadata): any;
export declare class ModelArmorTemplateTemplateMetadataOutputReference 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(): ModelArmorTemplateTemplateMetadata | undefined;
    set internalValue(value: ModelArmorTemplateTemplateMetadata | undefined);
    private _customLlmResponseSafetyErrorCode?;
    get customLlmResponseSafetyErrorCode(): number;
    set customLlmResponseSafetyErrorCode(value: number);
    resetCustomLlmResponseSafetyErrorCode(): void;
    get customLlmResponseSafetyErrorCodeInput(): number | undefined;
    private _customLlmResponseSafetyErrorMessage?;
    get customLlmResponseSafetyErrorMessage(): string;
    set customLlmResponseSafetyErrorMessage(value: string);
    resetCustomLlmResponseSafetyErrorMessage(): void;
    get customLlmResponseSafetyErrorMessageInput(): string | undefined;
    private _customPromptSafetyErrorCode?;
    get customPromptSafetyErrorCode(): number;
    set customPromptSafetyErrorCode(value: number);
    resetCustomPromptSafetyErrorCode(): void;
    get customPromptSafetyErrorCodeInput(): number | undefined;
    private _customPromptSafetyErrorMessage?;
    get customPromptSafetyErrorMessage(): string;
    set customPromptSafetyErrorMessage(value: string);
    resetCustomPromptSafetyErrorMessage(): void;
    get customPromptSafetyErrorMessageInput(): string | undefined;
    private _enforcementType?;
    get enforcementType(): string;
    set enforcementType(value: string);
    resetEnforcementType(): void;
    get enforcementTypeInput(): string | undefined;
    private _ignorePartialInvocationFailures?;
    get ignorePartialInvocationFailures(): boolean | cdktf.IResolvable;
    set ignorePartialInvocationFailures(value: boolean | cdktf.IResolvable);
    resetIgnorePartialInvocationFailures(): void;
    get ignorePartialInvocationFailuresInput(): boolean | cdktf.IResolvable | undefined;
    private _logSanitizeOperations?;
    get logSanitizeOperations(): boolean | cdktf.IResolvable;
    set logSanitizeOperations(value: boolean | cdktf.IResolvable);
    resetLogSanitizeOperations(): void;
    get logSanitizeOperationsInput(): boolean | cdktf.IResolvable | undefined;
    private _logTemplateOperations?;
    get logTemplateOperations(): boolean | cdktf.IResolvable;
    set logTemplateOperations(value: boolean | cdktf.IResolvable);
    resetLogTemplateOperations(): void;
    get logTemplateOperationsInput(): boolean | cdktf.IResolvable | undefined;
    private _multiLanguageDetection;
    get multiLanguageDetection(): ModelArmorTemplateTemplateMetadataMultiLanguageDetectionOutputReference;
    putMultiLanguageDetection(value: ModelArmorTemplateTemplateMetadataMultiLanguageDetection): void;
    resetMultiLanguageDetection(): void;
    get multiLanguageDetectionInput(): ModelArmorTemplateTemplateMetadataMultiLanguageDetection | undefined;
}
export interface ModelArmorTemplateTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#create ModelArmorTemplate#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#delete ModelArmorTemplate#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#update ModelArmorTemplate#update}
    */
    readonly update?: string;
}
export declare function modelArmorTemplateTimeoutsToTerraform(struct?: ModelArmorTemplateTimeouts | cdktf.IResolvable): any;
export declare function modelArmorTemplateTimeoutsToHclTerraform(struct?: ModelArmorTemplateTimeouts | cdktf.IResolvable): any;
export declare class ModelArmorTemplateTimeoutsOutputReference 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(): ModelArmorTemplateTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: ModelArmorTemplateTimeouts | 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;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template google_model_armor_template}
*/
export declare class ModelArmorTemplate extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_model_armor_template";
    /**
    * Generates CDKTF code for importing a ModelArmorTemplate 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 ModelArmorTemplate to import
    * @param importFromId The id of the existing ModelArmorTemplate that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/model_armor_template#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the ModelArmorTemplate 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/hashicorp/google/6.50.0/docs/resources/model_armor_template google_model_armor_template} 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 ModelArmorTemplateConfig
    */
    constructor(scope: Construct, id: string, config: ModelArmorTemplateConfig);
    get createTime(): string;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    get name(): string;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _templateId?;
    get templateId(): string;
    set templateId(value: string);
    get templateIdInput(): string | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get updateTime(): string;
    private _filterConfig;
    get filterConfig(): ModelArmorTemplateFilterConfigOutputReference;
    putFilterConfig(value: ModelArmorTemplateFilterConfig): void;
    get filterConfigInput(): ModelArmorTemplateFilterConfig | undefined;
    private _templateMetadata;
    get templateMetadata(): ModelArmorTemplateTemplateMetadataOutputReference;
    putTemplateMetadata(value: ModelArmorTemplateTemplateMetadata): void;
    resetTemplateMetadata(): void;
    get templateMetadataInput(): ModelArmorTemplateTemplateMetadata | undefined;
    private _timeouts;
    get timeouts(): ModelArmorTemplateTimeoutsOutputReference;
    putTimeouts(value: ModelArmorTemplateTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | ModelArmorTemplateTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
