/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DialogflowCxAgentConfig extends cdktf.TerraformMetaArguments {
    /**
    * The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted Web Demo integration.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#avatar_uri DialogflowCxAgent#avatar_uri}
    */
    readonly avatarUri?: string;
    /**
    * The default language of the agent as a language tag. [See Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language)
    * for a list of the currently supported language codes. This field cannot be updated after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#default_language_code DialogflowCxAgent#default_language_code}
    */
    readonly defaultLanguageCode: string;
    /**
    * If set to 'true', Terraform will delete the chat engine associated with the agent when the agent is destroyed.
    * Otherwise, the chat engine will persist.
    *
    * This virtual field addresses a critical dependency chain: 'agent' -> 'engine' -> 'data store'. The chat engine is automatically
    * provisioned when a data store is linked to the agent, meaning Terraform doesn't have direct control over its lifecycle as a managed
    * resource. This creates a problem when both the agent and data store are managed by Terraform and need to be destroyed. Without
    * delete_chat_engine_on_destroy set to true, the data store's deletion would fail because the unmanaged chat engine would still be
    * using it. This setting ensures that the entire dependency chain can be properly torn down.
    * See 'mmv1/templates/terraform/examples/dialogflowcx_tool_data_store.tf.tmpl' as an example.
    *
    * Data store can be linked to an agent through the 'knowledgeConnectorSettings' field of a [flow](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.flows#resource:-flow)
    * or a [page](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.flows.pages#resource:-page)
    * or the 'dataStoreSpec' field of a [tool](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#resource:-tool).
    * The ID of the implicitly created engine is stored in the 'genAppBuilderSettings' field of the [agent](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents#resource:-agent).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#delete_chat_engine_on_destroy DialogflowCxAgent#delete_chat_engine_on_destroy}
    */
    readonly deleteChatEngineOnDestroy?: boolean | cdktf.IResolvable;
    /**
    * The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#description DialogflowCxAgent#description}
    */
    readonly description?: string;
    /**
    * The human-readable name of the agent, unique within the location.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#display_name DialogflowCxAgent#display_name}
    */
    readonly displayName: string;
    /**
    * Indicates if automatic spell correction is enabled in detect intent requests.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enable_spell_correction DialogflowCxAgent#enable_spell_correction}
    */
    readonly enableSpellCorrection?: boolean | cdktf.IResolvable;
    /**
    * Determines whether this agent should log conversation queries.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enable_stackdriver_logging DialogflowCxAgent#enable_stackdriver_logging}
    */
    readonly enableStackdriverLogging?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#id DialogflowCxAgent#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 name of the location this agent is located in.
    *
    * ~> **Note:** The first time you are deploying an Agent in your project you must configure location settings.
    *  This is a one time step but at the moment you can only [configure location settings](https://cloud.google.com/dialogflow/cx/docs/concept/region#location-settings) via the Dialogflow CX console.
    *  Another options is to use global location so you don't need to manually configure location settings.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#location DialogflowCxAgent#location}
    */
    readonly location: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#project DialogflowCxAgent#project}
    */
    readonly project?: string;
    /**
    * Name of the SecuritySettings reference for the agent. Format: projects/<Project ID>/locations/<Location ID>/securitySettings/<Security Settings ID>.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#security_settings DialogflowCxAgent#security_settings}
    */
    readonly securitySettings?: string;
    /**
    * The list of all languages supported by this agent (except for the default_language_code).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#supported_language_codes DialogflowCxAgent#supported_language_codes}
    */
    readonly supportedLanguageCodes?: string[];
    /**
    * The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York,
    * Europe/Paris.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#time_zone DialogflowCxAgent#time_zone}
    */
    readonly timeZone: string;
    /**
    * advanced_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#advanced_settings DialogflowCxAgent#advanced_settings}
    */
    readonly advancedSettings?: DialogflowCxAgentAdvancedSettings;
    /**
    * gen_app_builder_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#gen_app_builder_settings DialogflowCxAgent#gen_app_builder_settings}
    */
    readonly genAppBuilderSettings?: DialogflowCxAgentGenAppBuilderSettings;
    /**
    * git_integration_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#git_integration_settings DialogflowCxAgent#git_integration_settings}
    */
    readonly gitIntegrationSettings?: DialogflowCxAgentGitIntegrationSettings;
    /**
    * speech_to_text_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#speech_to_text_settings DialogflowCxAgent#speech_to_text_settings}
    */
    readonly speechToTextSettings?: DialogflowCxAgentSpeechToTextSettings;
    /**
    * text_to_speech_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#text_to_speech_settings DialogflowCxAgent#text_to_speech_settings}
    */
    readonly textToSpeechSettings?: DialogflowCxAgentTextToSpeechSettings;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#timeouts DialogflowCxAgent#timeouts}
    */
    readonly timeouts?: DialogflowCxAgentTimeouts;
}
export interface DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination {
    /**
    * The Google Cloud Storage URI for the exported objects. Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.
    * Format: gs://bucket/object-name-or-prefix
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#uri DialogflowCxAgent#uri}
    */
    readonly uri?: string;
}
export declare function dialogflowCxAgentAdvancedSettingsAudioExportGcsDestinationToTerraform(struct?: DialogflowCxAgentAdvancedSettingsAudioExportGcsDestinationOutputReference | DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination): any;
export declare function dialogflowCxAgentAdvancedSettingsAudioExportGcsDestinationToHclTerraform(struct?: DialogflowCxAgentAdvancedSettingsAudioExportGcsDestinationOutputReference | DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination): any;
export declare class DialogflowCxAgentAdvancedSettingsAudioExportGcsDestinationOutputReference 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(): DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination | undefined;
    set internalValue(value: DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination | undefined);
    private _uri?;
    get uri(): string;
    set uri(value: string);
    resetUri(): void;
    get uriInput(): string | undefined;
}
export interface DialogflowCxAgentAdvancedSettingsDtmfSettings {
    /**
    * If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enabled DialogflowCxAgent#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
    /**
    * The digit that terminates a DTMF digit sequence.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#finish_digit DialogflowCxAgent#finish_digit}
    */
    readonly finishDigit?: string;
    /**
    * Max length of DTMF digits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#max_digits DialogflowCxAgent#max_digits}
    */
    readonly maxDigits?: number;
}
export declare function dialogflowCxAgentAdvancedSettingsDtmfSettingsToTerraform(struct?: DialogflowCxAgentAdvancedSettingsDtmfSettingsOutputReference | DialogflowCxAgentAdvancedSettingsDtmfSettings): any;
export declare function dialogflowCxAgentAdvancedSettingsDtmfSettingsToHclTerraform(struct?: DialogflowCxAgentAdvancedSettingsDtmfSettingsOutputReference | DialogflowCxAgentAdvancedSettingsDtmfSettings): any;
export declare class DialogflowCxAgentAdvancedSettingsDtmfSettingsOutputReference 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(): DialogflowCxAgentAdvancedSettingsDtmfSettings | undefined;
    set internalValue(value: DialogflowCxAgentAdvancedSettingsDtmfSettings | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _finishDigit?;
    get finishDigit(): string;
    set finishDigit(value: string);
    resetFinishDigit(): void;
    get finishDigitInput(): string | undefined;
    private _maxDigits?;
    get maxDigits(): number;
    set maxDigits(value: number);
    resetMaxDigits(): void;
    get maxDigitsInput(): number | undefined;
}
export interface DialogflowCxAgentAdvancedSettingsLoggingSettings {
    /**
    * Enables consent-based end-user input redaction, if true, a pre-defined session parameter **$session.params.conversation-redaction** will be used to determine if the utterance should be redacted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enable_consent_based_redaction DialogflowCxAgent#enable_consent_based_redaction}
    */
    readonly enableConsentBasedRedaction?: boolean | cdktf.IResolvable;
    /**
    * Enables DF Interaction logging.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enable_interaction_logging DialogflowCxAgent#enable_interaction_logging}
    */
    readonly enableInteractionLogging?: boolean | cdktf.IResolvable;
    /**
    * Enables Google Cloud Logging.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enable_stackdriver_logging DialogflowCxAgent#enable_stackdriver_logging}
    */
    readonly enableStackdriverLogging?: boolean | cdktf.IResolvable;
}
export declare function dialogflowCxAgentAdvancedSettingsLoggingSettingsToTerraform(struct?: DialogflowCxAgentAdvancedSettingsLoggingSettingsOutputReference | DialogflowCxAgentAdvancedSettingsLoggingSettings): any;
export declare function dialogflowCxAgentAdvancedSettingsLoggingSettingsToHclTerraform(struct?: DialogflowCxAgentAdvancedSettingsLoggingSettingsOutputReference | DialogflowCxAgentAdvancedSettingsLoggingSettings): any;
export declare class DialogflowCxAgentAdvancedSettingsLoggingSettingsOutputReference 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(): DialogflowCxAgentAdvancedSettingsLoggingSettings | undefined;
    set internalValue(value: DialogflowCxAgentAdvancedSettingsLoggingSettings | undefined);
    private _enableConsentBasedRedaction?;
    get enableConsentBasedRedaction(): boolean | cdktf.IResolvable;
    set enableConsentBasedRedaction(value: boolean | cdktf.IResolvable);
    resetEnableConsentBasedRedaction(): void;
    get enableConsentBasedRedactionInput(): boolean | cdktf.IResolvable | undefined;
    private _enableInteractionLogging?;
    get enableInteractionLogging(): boolean | cdktf.IResolvable;
    set enableInteractionLogging(value: boolean | cdktf.IResolvable);
    resetEnableInteractionLogging(): void;
    get enableInteractionLoggingInput(): boolean | cdktf.IResolvable | undefined;
    private _enableStackdriverLogging?;
    get enableStackdriverLogging(): boolean | cdktf.IResolvable;
    set enableStackdriverLogging(value: boolean | cdktf.IResolvable);
    resetEnableStackdriverLogging(): void;
    get enableStackdriverLoggingInput(): boolean | cdktf.IResolvable | undefined;
}
export interface DialogflowCxAgentAdvancedSettingsSpeechSettings {
    /**
    * Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#endpointer_sensitivity DialogflowCxAgent#endpointer_sensitivity}
    */
    readonly endpointerSensitivity?: number;
    /**
    * Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).
    * An object containing a list of **"key": value** pairs. Example: **{ "name": "wrench", "mass": "1.3kg", "count": "3" }**.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#models DialogflowCxAgent#models}
    */
    readonly models?: {
        [key: string]: string;
    };
    /**
    * Timeout before detecting no speech.
    * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#no_speech_timeout DialogflowCxAgent#no_speech_timeout}
    */
    readonly noSpeechTimeout?: string;
    /**
    * Use timeout based endpointing, interpreting endpointer sensitivity as seconds of timeout value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#use_timeout_based_endpointing DialogflowCxAgent#use_timeout_based_endpointing}
    */
    readonly useTimeoutBasedEndpointing?: boolean | cdktf.IResolvable;
}
export declare function dialogflowCxAgentAdvancedSettingsSpeechSettingsToTerraform(struct?: DialogflowCxAgentAdvancedSettingsSpeechSettingsOutputReference | DialogflowCxAgentAdvancedSettingsSpeechSettings): any;
export declare function dialogflowCxAgentAdvancedSettingsSpeechSettingsToHclTerraform(struct?: DialogflowCxAgentAdvancedSettingsSpeechSettingsOutputReference | DialogflowCxAgentAdvancedSettingsSpeechSettings): any;
export declare class DialogflowCxAgentAdvancedSettingsSpeechSettingsOutputReference 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(): DialogflowCxAgentAdvancedSettingsSpeechSettings | undefined;
    set internalValue(value: DialogflowCxAgentAdvancedSettingsSpeechSettings | undefined);
    private _endpointerSensitivity?;
    get endpointerSensitivity(): number;
    set endpointerSensitivity(value: number);
    resetEndpointerSensitivity(): void;
    get endpointerSensitivityInput(): number | undefined;
    private _models?;
    get models(): {
        [key: string]: string;
    };
    set models(value: {
        [key: string]: string;
    });
    resetModels(): void;
    get modelsInput(): {
        [key: string]: string;
    } | undefined;
    private _noSpeechTimeout?;
    get noSpeechTimeout(): string;
    set noSpeechTimeout(value: string);
    resetNoSpeechTimeout(): void;
    get noSpeechTimeoutInput(): string | undefined;
    private _useTimeoutBasedEndpointing?;
    get useTimeoutBasedEndpointing(): boolean | cdktf.IResolvable;
    set useTimeoutBasedEndpointing(value: boolean | cdktf.IResolvable);
    resetUseTimeoutBasedEndpointing(): void;
    get useTimeoutBasedEndpointingInput(): boolean | cdktf.IResolvable | undefined;
}
export interface DialogflowCxAgentAdvancedSettings {
    /**
    * audio_export_gcs_destination block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#audio_export_gcs_destination DialogflowCxAgent#audio_export_gcs_destination}
    */
    readonly audioExportGcsDestination?: DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination;
    /**
    * dtmf_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#dtmf_settings DialogflowCxAgent#dtmf_settings}
    */
    readonly dtmfSettings?: DialogflowCxAgentAdvancedSettingsDtmfSettings;
    /**
    * logging_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#logging_settings DialogflowCxAgent#logging_settings}
    */
    readonly loggingSettings?: DialogflowCxAgentAdvancedSettingsLoggingSettings;
    /**
    * speech_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#speech_settings DialogflowCxAgent#speech_settings}
    */
    readonly speechSettings?: DialogflowCxAgentAdvancedSettingsSpeechSettings;
}
export declare function dialogflowCxAgentAdvancedSettingsToTerraform(struct?: DialogflowCxAgentAdvancedSettingsOutputReference | DialogflowCxAgentAdvancedSettings): any;
export declare function dialogflowCxAgentAdvancedSettingsToHclTerraform(struct?: DialogflowCxAgentAdvancedSettingsOutputReference | DialogflowCxAgentAdvancedSettings): any;
export declare class DialogflowCxAgentAdvancedSettingsOutputReference 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(): DialogflowCxAgentAdvancedSettings | undefined;
    set internalValue(value: DialogflowCxAgentAdvancedSettings | undefined);
    private _audioExportGcsDestination;
    get audioExportGcsDestination(): DialogflowCxAgentAdvancedSettingsAudioExportGcsDestinationOutputReference;
    putAudioExportGcsDestination(value: DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination): void;
    resetAudioExportGcsDestination(): void;
    get audioExportGcsDestinationInput(): DialogflowCxAgentAdvancedSettingsAudioExportGcsDestination | undefined;
    private _dtmfSettings;
    get dtmfSettings(): DialogflowCxAgentAdvancedSettingsDtmfSettingsOutputReference;
    putDtmfSettings(value: DialogflowCxAgentAdvancedSettingsDtmfSettings): void;
    resetDtmfSettings(): void;
    get dtmfSettingsInput(): DialogflowCxAgentAdvancedSettingsDtmfSettings | undefined;
    private _loggingSettings;
    get loggingSettings(): DialogflowCxAgentAdvancedSettingsLoggingSettingsOutputReference;
    putLoggingSettings(value: DialogflowCxAgentAdvancedSettingsLoggingSettings): void;
    resetLoggingSettings(): void;
    get loggingSettingsInput(): DialogflowCxAgentAdvancedSettingsLoggingSettings | undefined;
    private _speechSettings;
    get speechSettings(): DialogflowCxAgentAdvancedSettingsSpeechSettingsOutputReference;
    putSpeechSettings(value: DialogflowCxAgentAdvancedSettingsSpeechSettings): void;
    resetSpeechSettings(): void;
    get speechSettingsInput(): DialogflowCxAgentAdvancedSettingsSpeechSettings | undefined;
}
export interface DialogflowCxAgentGenAppBuilderSettings {
    /**
    * The full name of the Gen App Builder engine related to this agent if there is one.
    * Format: projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#engine DialogflowCxAgent#engine}
    */
    readonly engine: string;
}
export declare function dialogflowCxAgentGenAppBuilderSettingsToTerraform(struct?: DialogflowCxAgentGenAppBuilderSettingsOutputReference | DialogflowCxAgentGenAppBuilderSettings): any;
export declare function dialogflowCxAgentGenAppBuilderSettingsToHclTerraform(struct?: DialogflowCxAgentGenAppBuilderSettingsOutputReference | DialogflowCxAgentGenAppBuilderSettings): any;
export declare class DialogflowCxAgentGenAppBuilderSettingsOutputReference 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(): DialogflowCxAgentGenAppBuilderSettings | undefined;
    set internalValue(value: DialogflowCxAgentGenAppBuilderSettings | undefined);
    private _engine?;
    get engine(): string;
    set engine(value: string);
    get engineInput(): string | undefined;
}
export interface DialogflowCxAgentGitIntegrationSettingsGithubSettings {
    /**
    * The access token used to authenticate the access to the GitHub repository.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#access_token DialogflowCxAgent#access_token}
    */
    readonly accessToken?: string;
    /**
    * A list of branches configured to be used from Dialogflow.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#branches DialogflowCxAgent#branches}
    */
    readonly branches?: string[];
    /**
    * The unique repository display name for the GitHub repository.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#display_name DialogflowCxAgent#display_name}
    */
    readonly displayName?: string;
    /**
    * The GitHub repository URI related to the agent.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#repository_uri DialogflowCxAgent#repository_uri}
    */
    readonly repositoryUri?: string;
    /**
    * The branch of the GitHub repository tracked for this agent.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#tracking_branch DialogflowCxAgent#tracking_branch}
    */
    readonly trackingBranch?: string;
}
export declare function dialogflowCxAgentGitIntegrationSettingsGithubSettingsToTerraform(struct?: DialogflowCxAgentGitIntegrationSettingsGithubSettingsOutputReference | DialogflowCxAgentGitIntegrationSettingsGithubSettings): any;
export declare function dialogflowCxAgentGitIntegrationSettingsGithubSettingsToHclTerraform(struct?: DialogflowCxAgentGitIntegrationSettingsGithubSettingsOutputReference | DialogflowCxAgentGitIntegrationSettingsGithubSettings): any;
export declare class DialogflowCxAgentGitIntegrationSettingsGithubSettingsOutputReference 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(): DialogflowCxAgentGitIntegrationSettingsGithubSettings | undefined;
    set internalValue(value: DialogflowCxAgentGitIntegrationSettingsGithubSettings | undefined);
    private _accessToken?;
    get accessToken(): string;
    set accessToken(value: string);
    resetAccessToken(): void;
    get accessTokenInput(): string | undefined;
    private _branches?;
    get branches(): string[];
    set branches(value: string[]);
    resetBranches(): void;
    get branchesInput(): string[] | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _repositoryUri?;
    get repositoryUri(): string;
    set repositoryUri(value: string);
    resetRepositoryUri(): void;
    get repositoryUriInput(): string | undefined;
    private _trackingBranch?;
    get trackingBranch(): string;
    set trackingBranch(value: string);
    resetTrackingBranch(): void;
    get trackingBranchInput(): string | undefined;
}
export interface DialogflowCxAgentGitIntegrationSettings {
    /**
    * github_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#github_settings DialogflowCxAgent#github_settings}
    */
    readonly githubSettings?: DialogflowCxAgentGitIntegrationSettingsGithubSettings;
}
export declare function dialogflowCxAgentGitIntegrationSettingsToTerraform(struct?: DialogflowCxAgentGitIntegrationSettingsOutputReference | DialogflowCxAgentGitIntegrationSettings): any;
export declare function dialogflowCxAgentGitIntegrationSettingsToHclTerraform(struct?: DialogflowCxAgentGitIntegrationSettingsOutputReference | DialogflowCxAgentGitIntegrationSettings): any;
export declare class DialogflowCxAgentGitIntegrationSettingsOutputReference 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(): DialogflowCxAgentGitIntegrationSettings | undefined;
    set internalValue(value: DialogflowCxAgentGitIntegrationSettings | undefined);
    private _githubSettings;
    get githubSettings(): DialogflowCxAgentGitIntegrationSettingsGithubSettingsOutputReference;
    putGithubSettings(value: DialogflowCxAgentGitIntegrationSettingsGithubSettings): void;
    resetGithubSettings(): void;
    get githubSettingsInput(): DialogflowCxAgentGitIntegrationSettingsGithubSettings | undefined;
}
export interface DialogflowCxAgentSpeechToTextSettings {
    /**
    * Whether to use speech adaptation for speech recognition.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#enable_speech_adaptation DialogflowCxAgent#enable_speech_adaptation}
    */
    readonly enableSpeechAdaptation?: boolean | cdktf.IResolvable;
}
export declare function dialogflowCxAgentSpeechToTextSettingsToTerraform(struct?: DialogflowCxAgentSpeechToTextSettingsOutputReference | DialogflowCxAgentSpeechToTextSettings): any;
export declare function dialogflowCxAgentSpeechToTextSettingsToHclTerraform(struct?: DialogflowCxAgentSpeechToTextSettingsOutputReference | DialogflowCxAgentSpeechToTextSettings): any;
export declare class DialogflowCxAgentSpeechToTextSettingsOutputReference 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(): DialogflowCxAgentSpeechToTextSettings | undefined;
    set internalValue(value: DialogflowCxAgentSpeechToTextSettings | undefined);
    private _enableSpeechAdaptation?;
    get enableSpeechAdaptation(): boolean | cdktf.IResolvable;
    set enableSpeechAdaptation(value: boolean | cdktf.IResolvable);
    resetEnableSpeechAdaptation(): void;
    get enableSpeechAdaptationInput(): boolean | cdktf.IResolvable | undefined;
}
export interface DialogflowCxAgentTextToSpeechSettings {
    /**
    * Configuration of how speech should be synthesized, mapping from [language](https://cloud.google.com/dialogflow/cx/docs/reference/language) to [SynthesizeSpeechConfig](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents#synthesizespeechconfig).
    * These settings affect:
    * * The phone gateway synthesize configuration set via Agent.text_to_speech_settings.
    * * How speech is synthesized when invoking session APIs. 'Agent.text_to_speech_settings' only applies if 'OutputAudioConfig.synthesize_speech_config' is not specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#synthesize_speech_configs DialogflowCxAgent#synthesize_speech_configs}
    */
    readonly synthesizeSpeechConfigs?: string;
}
export declare function dialogflowCxAgentTextToSpeechSettingsToTerraform(struct?: DialogflowCxAgentTextToSpeechSettingsOutputReference | DialogflowCxAgentTextToSpeechSettings): any;
export declare function dialogflowCxAgentTextToSpeechSettingsToHclTerraform(struct?: DialogflowCxAgentTextToSpeechSettingsOutputReference | DialogflowCxAgentTextToSpeechSettings): any;
export declare class DialogflowCxAgentTextToSpeechSettingsOutputReference 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(): DialogflowCxAgentTextToSpeechSettings | undefined;
    set internalValue(value: DialogflowCxAgentTextToSpeechSettings | undefined);
    private _synthesizeSpeechConfigs?;
    get synthesizeSpeechConfigs(): string;
    set synthesizeSpeechConfigs(value: string);
    resetSynthesizeSpeechConfigs(): void;
    get synthesizeSpeechConfigsInput(): string | undefined;
}
export interface DialogflowCxAgentTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#create DialogflowCxAgent#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#delete DialogflowCxAgent#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#update DialogflowCxAgent#update}
    */
    readonly update?: string;
}
export declare function dialogflowCxAgentTimeoutsToTerraform(struct?: DialogflowCxAgentTimeouts | cdktf.IResolvable): any;
export declare function dialogflowCxAgentTimeoutsToHclTerraform(struct?: DialogflowCxAgentTimeouts | cdktf.IResolvable): any;
export declare class DialogflowCxAgentTimeoutsOutputReference 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(): DialogflowCxAgentTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxAgentTimeouts | 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.41.0/docs/resources/dialogflow_cx_agent google_dialogflow_cx_agent}
*/
export declare class DialogflowCxAgent extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_dialogflow_cx_agent";
    /**
    * Generates CDKTF code for importing a DialogflowCxAgent 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 DialogflowCxAgent to import
    * @param importFromId The id of the existing DialogflowCxAgent that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/dialogflow_cx_agent#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DialogflowCxAgent 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.41.0/docs/resources/dialogflow_cx_agent google_dialogflow_cx_agent} 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 DialogflowCxAgentConfig
    */
    constructor(scope: Construct, id: string, config: DialogflowCxAgentConfig);
    private _avatarUri?;
    get avatarUri(): string;
    set avatarUri(value: string);
    resetAvatarUri(): void;
    get avatarUriInput(): string | undefined;
    private _defaultLanguageCode?;
    get defaultLanguageCode(): string;
    set defaultLanguageCode(value: string);
    get defaultLanguageCodeInput(): string | undefined;
    private _deleteChatEngineOnDestroy?;
    get deleteChatEngineOnDestroy(): boolean | cdktf.IResolvable;
    set deleteChatEngineOnDestroy(value: boolean | cdktf.IResolvable);
    resetDeleteChatEngineOnDestroy(): void;
    get deleteChatEngineOnDestroyInput(): boolean | cdktf.IResolvable | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _enableSpellCorrection?;
    get enableSpellCorrection(): boolean | cdktf.IResolvable;
    set enableSpellCorrection(value: boolean | cdktf.IResolvable);
    resetEnableSpellCorrection(): void;
    get enableSpellCorrectionInput(): boolean | cdktf.IResolvable | undefined;
    private _enableStackdriverLogging?;
    get enableStackdriverLogging(): boolean | cdktf.IResolvable;
    set enableStackdriverLogging(value: boolean | cdktf.IResolvable);
    resetEnableStackdriverLogging(): void;
    get enableStackdriverLoggingInput(): boolean | cdktf.IResolvable | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): 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 _securitySettings?;
    get securitySettings(): string;
    set securitySettings(value: string);
    resetSecuritySettings(): void;
    get securitySettingsInput(): string | undefined;
    get startFlow(): string;
    private _supportedLanguageCodes?;
    get supportedLanguageCodes(): string[];
    set supportedLanguageCodes(value: string[]);
    resetSupportedLanguageCodes(): void;
    get supportedLanguageCodesInput(): string[] | undefined;
    private _timeZone?;
    get timeZone(): string;
    set timeZone(value: string);
    get timeZoneInput(): string | undefined;
    private _advancedSettings;
    get advancedSettings(): DialogflowCxAgentAdvancedSettingsOutputReference;
    putAdvancedSettings(value: DialogflowCxAgentAdvancedSettings): void;
    resetAdvancedSettings(): void;
    get advancedSettingsInput(): DialogflowCxAgentAdvancedSettings | undefined;
    private _genAppBuilderSettings;
    get genAppBuilderSettings(): DialogflowCxAgentGenAppBuilderSettingsOutputReference;
    putGenAppBuilderSettings(value: DialogflowCxAgentGenAppBuilderSettings): void;
    resetGenAppBuilderSettings(): void;
    get genAppBuilderSettingsInput(): DialogflowCxAgentGenAppBuilderSettings | undefined;
    private _gitIntegrationSettings;
    get gitIntegrationSettings(): DialogflowCxAgentGitIntegrationSettingsOutputReference;
    putGitIntegrationSettings(value: DialogflowCxAgentGitIntegrationSettings): void;
    resetGitIntegrationSettings(): void;
    get gitIntegrationSettingsInput(): DialogflowCxAgentGitIntegrationSettings | undefined;
    private _speechToTextSettings;
    get speechToTextSettings(): DialogflowCxAgentSpeechToTextSettingsOutputReference;
    putSpeechToTextSettings(value: DialogflowCxAgentSpeechToTextSettings): void;
    resetSpeechToTextSettings(): void;
    get speechToTextSettingsInput(): DialogflowCxAgentSpeechToTextSettings | undefined;
    private _textToSpeechSettings;
    get textToSpeechSettings(): DialogflowCxAgentTextToSpeechSettingsOutputReference;
    putTextToSpeechSettings(value: DialogflowCxAgentTextToSpeechSettings): void;
    resetTextToSpeechSettings(): void;
    get textToSpeechSettingsInput(): DialogflowCxAgentTextToSpeechSettings | undefined;
    private _timeouts;
    get timeouts(): DialogflowCxAgentTimeoutsOutputReference;
    putTimeouts(value: DialogflowCxAgentTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DialogflowCxAgentTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
