/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DiscoveryEngineRecommendationEngineConfig extends cdktf.TerraformMetaArguments {
    /**
    * The data stores associated with this engine. For SOLUTION_TYPE_RECOMMENDATION type of engines, they can only associate with at most one data store.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#data_store_ids DiscoveryEngineRecommendationEngine#data_store_ids}
    */
    readonly dataStoreIds: string[];
    /**
    * Required. The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#display_name DiscoveryEngineRecommendationEngine#display_name}
    */
    readonly displayName: string;
    /**
    * Unique ID to use for Recommendation Engine.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#engine_id DiscoveryEngineRecommendationEngine#engine_id}
    */
    readonly engineId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#id DiscoveryEngineRecommendationEngine#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;
    /**
    * The industry vertical that the engine registers. The restriction of the Engine industry vertical is based on DataStore: If unspecified, default to GENERIC. Vertical on Engine has to match vertical of the DataStore liniked to the engine. Default value: "GENERIC" Possible values: ["GENERIC", "MEDIA"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#industry_vertical DiscoveryEngineRecommendationEngine#industry_vertical}
    */
    readonly industryVertical?: string;
    /**
    * The geographic location where the data store should reside. The value can
    * only be one of "global", "us" and "eu".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#location DiscoveryEngineRecommendationEngine#location}
    */
    readonly location: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#project DiscoveryEngineRecommendationEngine#project}
    */
    readonly project?: string;
    /**
    * common_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#common_config DiscoveryEngineRecommendationEngine#common_config}
    */
    readonly commonConfig?: DiscoveryEngineRecommendationEngineCommonConfig;
    /**
    * media_recommendation_engine_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#media_recommendation_engine_config DiscoveryEngineRecommendationEngine#media_recommendation_engine_config}
    */
    readonly mediaRecommendationEngineConfig?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#timeouts DiscoveryEngineRecommendationEngine#timeouts}
    */
    readonly timeouts?: DiscoveryEngineRecommendationEngineTimeouts;
}
export interface DiscoveryEngineRecommendationEngineCommonConfig {
    /**
    * The name of the company, business or entity that is associated with the engine. Setting this may help improve LLM related features.cd
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#company_name DiscoveryEngineRecommendationEngine#company_name}
    */
    readonly companyName?: string;
}
export declare function discoveryEngineRecommendationEngineCommonConfigToTerraform(struct?: DiscoveryEngineRecommendationEngineCommonConfigOutputReference | DiscoveryEngineRecommendationEngineCommonConfig): any;
export declare function discoveryEngineRecommendationEngineCommonConfigToHclTerraform(struct?: DiscoveryEngineRecommendationEngineCommonConfigOutputReference | DiscoveryEngineRecommendationEngineCommonConfig): any;
export declare class DiscoveryEngineRecommendationEngineCommonConfigOutputReference 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(): DiscoveryEngineRecommendationEngineCommonConfig | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineCommonConfig | undefined);
    private _companyName?;
    get companyName(): string;
    set companyName(value: string);
    resetCompanyName(): void;
    get companyNameInput(): string | undefined;
}
export interface DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig {
    /**
    * The time window of which the engine is queried at training and
    * prediction time. Positive integers only. The value translates to the
    * last X days of events. Currently required for the 'most-popular-items'
    * engine.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#time_window_days DiscoveryEngineRecommendationEngine#time_window_days}
    */
    readonly timeWindowDays?: number;
}
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfigToTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig): any;
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfigToHclTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig): any;
export declare class DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfigOutputReference 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(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig | undefined);
    private _timeWindowDays?;
    get timeWindowDays(): number;
    set timeWindowDays(value: number);
    resetTimeWindowDays(): void;
    get timeWindowDaysInput(): number | undefined;
}
export interface DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig {
    /**
    * The type of event with which the engine is queried at prediction time.
    * If set to 'generic', only 'view-item', 'media-play',and
    * 'media-complete' will be used as 'context-event' in engine training. If
    * set to 'view-home-page', 'view-home-page' will also be used as
    * 'context-events' in addition to 'view-item', 'media-play', and
    * 'media-complete'. Currently supported for the 'recommended-for-you'
    * engine. Currently supported values: 'view-home-page', 'generic'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#context_event_type DiscoveryEngineRecommendationEngine#context_event_type}
    */
    readonly contextEventType?: string;
}
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfigToTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig): any;
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfigToHclTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig): any;
export declare class DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfigOutputReference 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(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig | undefined);
    private _contextEventType?;
    get contextEventType(): string;
    set contextEventType(value: string);
    resetContextEventType(): void;
    get contextEventTypeInput(): string | undefined;
}
export interface DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig {
    /**
    * most_popular_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#most_popular_config DiscoveryEngineRecommendationEngine#most_popular_config}
    */
    readonly mostPopularConfig?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig;
    /**
    * recommended_for_you_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#recommended_for_you_config DiscoveryEngineRecommendationEngine#recommended_for_you_config}
    */
    readonly recommendedForYouConfig?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig;
}
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigToTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig): any;
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigToHclTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig): any;
export declare class DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigOutputReference 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(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig | undefined);
    private _mostPopularConfig;
    get mostPopularConfig(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfigOutputReference;
    putMostPopularConfig(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig): void;
    resetMostPopularConfig(): void;
    get mostPopularConfigInput(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig | undefined;
    private _recommendedForYouConfig;
    get recommendedForYouConfig(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfigOutputReference;
    putRecommendedForYouConfig(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig): void;
    resetRecommendedForYouConfig(): void;
    get recommendedForYouConfigInput(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig | undefined;
}
export interface DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig {
    /**
    * The name of the field to target. Currently supported values: 'watch-percentage', 'watch-time'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#target_field DiscoveryEngineRecommendationEngine#target_field}
    */
    readonly targetField?: string;
    /**
    * The threshold to be applied to the target (e.g., 0.5).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#target_field_value_float DiscoveryEngineRecommendationEngine#target_field_value_float}
    */
    readonly targetFieldValueFloat?: number;
}
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigToTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig): any;
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigToHclTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig): any;
export declare class DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigOutputReference 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(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig | undefined);
    private _targetField?;
    get targetField(): string;
    set targetField(value: string);
    resetTargetField(): void;
    get targetFieldInput(): string | undefined;
    private _targetFieldValueFloat?;
    get targetFieldValueFloat(): number;
    set targetFieldValueFloat(value: number);
    resetTargetFieldValueFloat(): void;
    get targetFieldValueFloatInput(): number | undefined;
}
export interface DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig {
    /**
    * The optimization objective. e.g., 'cvr'.
    * This field together with MediaRecommendationEngineConfig.type describes
    * engine metadata to use to control engine training and serving.
    * Currently supported values: 'ctr', 'cvr'.
    * If not specified, we choose default based on engine type. Default depends on type of recommendation:
    * 'recommended-for-you' => 'ctr'
    * 'others-you-may-like' => 'ctr'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#optimization_objective DiscoveryEngineRecommendationEngine#optimization_objective}
    */
    readonly optimizationObjective?: string;
    /**
    * The training state that the engine is in (e.g. 'TRAINING' or 'PAUSED').
    * Since part of the cost of running the service
    * is frequency of training - this can be used to determine when to train
    * engine in order to control cost. If not specified: the default value for
    * 'CreateEngine' method is 'TRAINING'. The default value for
    * 'UpdateEngine' method is to keep the state the same as before. Possible values: ["PAUSED", "TRAINING"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#training_state DiscoveryEngineRecommendationEngine#training_state}
    */
    readonly trainingState?: string;
    /**
    * The type of engine. e.g., 'recommended-for-you'.
    * This field together with MediaRecommendationEngineConfig.optimizationObjective describes
    * engine metadata to use to control engine training and serving.
    * Currently supported values: 'recommended-for-you', 'others-you-may-like',
    * 'more-like-this', 'most-popular-items'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#type DiscoveryEngineRecommendationEngine#type}
    */
    readonly type?: string;
    /**
    * engine_features_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#engine_features_config DiscoveryEngineRecommendationEngine#engine_features_config}
    */
    readonly engineFeaturesConfig?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig;
    /**
    * optimization_objective_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#optimization_objective_config DiscoveryEngineRecommendationEngine#optimization_objective_config}
    */
    readonly optimizationObjectiveConfig?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig;
}
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigToTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig): any;
export declare function discoveryEngineRecommendationEngineMediaRecommendationEngineConfigToHclTerraform(struct?: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOutputReference | DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig): any;
export declare class DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOutputReference 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(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig | undefined);
    private _optimizationObjective?;
    get optimizationObjective(): string;
    set optimizationObjective(value: string);
    resetOptimizationObjective(): void;
    get optimizationObjectiveInput(): string | undefined;
    private _trainingState?;
    get trainingState(): string;
    set trainingState(value: string);
    resetTrainingState(): void;
    get trainingStateInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
    private _engineFeaturesConfig;
    get engineFeaturesConfig(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigOutputReference;
    putEngineFeaturesConfig(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig): void;
    resetEngineFeaturesConfig(): void;
    get engineFeaturesConfigInput(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig | undefined;
    private _optimizationObjectiveConfig;
    get optimizationObjectiveConfig(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfigOutputReference;
    putOptimizationObjectiveConfig(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig): void;
    resetOptimizationObjectiveConfig(): void;
    get optimizationObjectiveConfigInput(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig | undefined;
}
export interface DiscoveryEngineRecommendationEngineTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#create DiscoveryEngineRecommendationEngine#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#delete DiscoveryEngineRecommendationEngine#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#update DiscoveryEngineRecommendationEngine#update}
    */
    readonly update?: string;
}
export declare function discoveryEngineRecommendationEngineTimeoutsToTerraform(struct?: DiscoveryEngineRecommendationEngineTimeouts | cdktf.IResolvable): any;
export declare function discoveryEngineRecommendationEngineTimeoutsToHclTerraform(struct?: DiscoveryEngineRecommendationEngineTimeouts | cdktf.IResolvable): any;
export declare class DiscoveryEngineRecommendationEngineTimeoutsOutputReference 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(): DiscoveryEngineRecommendationEngineTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DiscoveryEngineRecommendationEngineTimeouts | 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/discovery_engine_recommendation_engine google_discovery_engine_recommendation_engine}
*/
export declare class DiscoveryEngineRecommendationEngine extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_discovery_engine_recommendation_engine";
    /**
    * Generates CDKTF code for importing a DiscoveryEngineRecommendationEngine 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 DiscoveryEngineRecommendationEngine to import
    * @param importFromId The id of the existing DiscoveryEngineRecommendationEngine that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/discovery_engine_recommendation_engine#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DiscoveryEngineRecommendationEngine 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/discovery_engine_recommendation_engine google_discovery_engine_recommendation_engine} 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 DiscoveryEngineRecommendationEngineConfig
    */
    constructor(scope: Construct, id: string, config: DiscoveryEngineRecommendationEngineConfig);
    get createTime(): string;
    private _dataStoreIds?;
    get dataStoreIds(): string[];
    set dataStoreIds(value: string[]);
    get dataStoreIdsInput(): string[] | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _engineId?;
    get engineId(): string;
    set engineId(value: string);
    get engineIdInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _industryVertical?;
    get industryVertical(): string;
    set industryVertical(value: string);
    resetIndustryVertical(): void;
    get industryVerticalInput(): 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;
    get updateTime(): string;
    private _commonConfig;
    get commonConfig(): DiscoveryEngineRecommendationEngineCommonConfigOutputReference;
    putCommonConfig(value: DiscoveryEngineRecommendationEngineCommonConfig): void;
    resetCommonConfig(): void;
    get commonConfigInput(): DiscoveryEngineRecommendationEngineCommonConfig | undefined;
    private _mediaRecommendationEngineConfig;
    get mediaRecommendationEngineConfig(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfigOutputReference;
    putMediaRecommendationEngineConfig(value: DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig): void;
    resetMediaRecommendationEngineConfig(): void;
    get mediaRecommendationEngineConfigInput(): DiscoveryEngineRecommendationEngineMediaRecommendationEngineConfig | undefined;
    private _timeouts;
    get timeouts(): DiscoveryEngineRecommendationEngineTimeoutsOutputReference;
    putTimeouts(value: DiscoveryEngineRecommendationEngineTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DiscoveryEngineRecommendationEngineTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
