/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DialogflowCxIntentConfig extends cdktf.TerraformMetaArguments {
    /**
    * Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#description DialogflowCxIntent#description}
    */
    readonly description?: string;
    /**
    * The human-readable name of the intent, unique within the agent.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#display_name DialogflowCxIntent#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#id DialogflowCxIntent#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;
    /**
    * Marks this as the [Default Negative Intent](https://cloud.google.com/dialogflow/cx/docs/concept/intent#negative) for an agent. When you create an agent, a Default Negative Intent is created automatically.
    * The Default Negative Intent cannot be deleted; deleting the 'google_dialogflow_cx_intent' resource does nothing to the underlying GCP resources.
    *
    * ~> Avoid having multiple 'google_dialogflow_cx_intent' resources linked to the same agent with 'is_default_negative_intent = true' because they will compete to control a single Default Negative Intent resource in GCP.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#is_default_negative_intent DialogflowCxIntent#is_default_negative_intent}
    */
    readonly isDefaultNegativeIntent?: boolean | cdktf.IResolvable;
    /**
    * Marks this as the [Default Welcome Intent](https://cloud.google.com/dialogflow/cx/docs/concept/intent#welcome) for an agent. When you create an agent, a Default Welcome Intent is created automatically.
    * The Default Welcome Intent cannot be deleted; deleting the 'google_dialogflow_cx_intent' resource does nothing to the underlying GCP resources.
    *
    * ~> Avoid having multiple 'google_dialogflow_cx_intent' resources linked to the same agent with 'is_default_welcome_intent = true' because they will compete to control a single Default Welcome Intent resource in GCP.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#is_default_welcome_intent DialogflowCxIntent#is_default_welcome_intent}
    */
    readonly isDefaultWelcomeIntent?: boolean | cdktf.IResolvable;
    /**
    * Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation.
    * Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.
    * To manage the fallback intent, set 'is_default_negative_intent = true'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#is_fallback DialogflowCxIntent#is_fallback}
    */
    readonly isFallback?: boolean | cdktf.IResolvable;
    /**
    * The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes.
    * Prefix "sys-" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. "sys-head" means the intent is a head intent. "sys.contextual" means the intent is a contextual intent.
    * An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    *
    * **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/5.43.0/docs/resources/dialogflow_cx_intent#labels DialogflowCxIntent#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The language of the following fields in intent:
    * Intent.training_phrases.parts.text
    * If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#language_code DialogflowCxIntent#language_code}
    */
    readonly languageCode?: string;
    /**
    * The agent to create an intent for.
    * Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#parent DialogflowCxIntent#parent}
    */
    readonly parent?: string;
    /**
    * The priority of this intent. Higher numbers represent higher priorities.
    * If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the Normal priority in the console.
    * If the supplied value is negative, the intent is ignored in runtime detect intent requests.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#priority DialogflowCxIntent#priority}
    */
    readonly priority?: number;
    /**
    * parameters block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#parameters DialogflowCxIntent#parameters}
    */
    readonly parameters?: DialogflowCxIntentParameters[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#timeouts DialogflowCxIntent#timeouts}
    */
    readonly timeouts?: DialogflowCxIntentTimeouts;
    /**
    * training_phrases block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#training_phrases DialogflowCxIntent#training_phrases}
    */
    readonly trainingPhrases?: DialogflowCxIntentTrainingPhrases[] | cdktf.IResolvable;
}
export interface DialogflowCxIntentParameters {
    /**
    * The entity type of the parameter.
    * Format: projects/-/locations/-/agents/-/entityTypes/<System Entity Type ID> for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/entityTypes/<Entity Type ID> for developer entity types.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#entity_type DialogflowCxIntent#entity_type}
    */
    readonly entityType: string;
    /**
    * The unique identifier of the parameter. This field is used by training phrases to annotate their parts.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#id DialogflowCxIntent#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;
    /**
    * Indicates whether the parameter represents a list of values.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#is_list DialogflowCxIntent#is_list}
    */
    readonly isList?: boolean | cdktf.IResolvable;
    /**
    * Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging.
    * Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#redact DialogflowCxIntent#redact}
    */
    readonly redact?: boolean | cdktf.IResolvable;
}
export declare function dialogflowCxIntentParametersToTerraform(struct?: DialogflowCxIntentParameters | cdktf.IResolvable): any;
export declare function dialogflowCxIntentParametersToHclTerraform(struct?: DialogflowCxIntentParameters | cdktf.IResolvable): any;
export declare class DialogflowCxIntentParametersOutputReference 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(): DialogflowCxIntentParameters | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxIntentParameters | cdktf.IResolvable | undefined);
    private _entityType?;
    get entityType(): string;
    set entityType(value: string);
    get entityTypeInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    get idInput(): string | undefined;
    private _isList?;
    get isList(): boolean | cdktf.IResolvable;
    set isList(value: boolean | cdktf.IResolvable);
    resetIsList(): void;
    get isListInput(): boolean | cdktf.IResolvable | undefined;
    private _redact?;
    get redact(): boolean | cdktf.IResolvable;
    set redact(value: boolean | cdktf.IResolvable);
    resetRedact(): void;
    get redactInput(): boolean | cdktf.IResolvable | undefined;
}
export declare class DialogflowCxIntentParametersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DialogflowCxIntentParameters[] | 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): DialogflowCxIntentParametersOutputReference;
}
export interface DialogflowCxIntentTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#create DialogflowCxIntent#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#delete DialogflowCxIntent#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#update DialogflowCxIntent#update}
    */
    readonly update?: string;
}
export declare function dialogflowCxIntentTimeoutsToTerraform(struct?: DialogflowCxIntentTimeouts | cdktf.IResolvable): any;
export declare function dialogflowCxIntentTimeoutsToHclTerraform(struct?: DialogflowCxIntentTimeouts | cdktf.IResolvable): any;
export declare class DialogflowCxIntentTimeoutsOutputReference 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(): DialogflowCxIntentTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxIntentTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
export interface DialogflowCxIntentTrainingPhrasesParts {
    /**
    * The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#parameter_id DialogflowCxIntent#parameter_id}
    */
    readonly parameterId?: string;
    /**
    * The text for this part.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#text DialogflowCxIntent#text}
    */
    readonly text: string;
}
export declare function dialogflowCxIntentTrainingPhrasesPartsToTerraform(struct?: DialogflowCxIntentTrainingPhrasesParts | cdktf.IResolvable): any;
export declare function dialogflowCxIntentTrainingPhrasesPartsToHclTerraform(struct?: DialogflowCxIntentTrainingPhrasesParts | cdktf.IResolvable): any;
export declare class DialogflowCxIntentTrainingPhrasesPartsOutputReference 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(): DialogflowCxIntentTrainingPhrasesParts | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxIntentTrainingPhrasesParts | cdktf.IResolvable | undefined);
    private _parameterId?;
    get parameterId(): string;
    set parameterId(value: string);
    resetParameterId(): void;
    get parameterIdInput(): string | undefined;
    private _text?;
    get text(): string;
    set text(value: string);
    get textInput(): string | undefined;
}
export declare class DialogflowCxIntentTrainingPhrasesPartsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DialogflowCxIntentTrainingPhrasesParts[] | 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): DialogflowCxIntentTrainingPhrasesPartsOutputReference;
}
export interface DialogflowCxIntentTrainingPhrases {
    /**
    * Indicates how many times this example was added to the intent.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#repeat_count DialogflowCxIntent#repeat_count}
    */
    readonly repeatCount?: number;
    /**
    * parts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#parts DialogflowCxIntent#parts}
    */
    readonly parts: DialogflowCxIntentTrainingPhrasesParts[] | cdktf.IResolvable;
}
export declare function dialogflowCxIntentTrainingPhrasesToTerraform(struct?: DialogflowCxIntentTrainingPhrases | cdktf.IResolvable): any;
export declare function dialogflowCxIntentTrainingPhrasesToHclTerraform(struct?: DialogflowCxIntentTrainingPhrases | cdktf.IResolvable): any;
export declare class DialogflowCxIntentTrainingPhrasesOutputReference 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(): DialogflowCxIntentTrainingPhrases | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxIntentTrainingPhrases | cdktf.IResolvable | undefined);
    get id(): string;
    private _repeatCount?;
    get repeatCount(): number;
    set repeatCount(value: number);
    resetRepeatCount(): void;
    get repeatCountInput(): number | undefined;
    private _parts;
    get parts(): DialogflowCxIntentTrainingPhrasesPartsList;
    putParts(value: DialogflowCxIntentTrainingPhrasesParts[] | cdktf.IResolvable): void;
    get partsInput(): cdktf.IResolvable | DialogflowCxIntentTrainingPhrasesParts[] | undefined;
}
export declare class DialogflowCxIntentTrainingPhrasesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DialogflowCxIntentTrainingPhrases[] | 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): DialogflowCxIntentTrainingPhrasesOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent google_dialogflow_cx_intent}
*/
export declare class DialogflowCxIntent extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_dialogflow_cx_intent";
    /**
    * Generates CDKTF code for importing a DialogflowCxIntent 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 DialogflowCxIntent to import
    * @param importFromId The id of the existing DialogflowCxIntent that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/dialogflow_cx_intent#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DialogflowCxIntent 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/5.43.0/docs/resources/dialogflow_cx_intent google_dialogflow_cx_intent} 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 DialogflowCxIntentConfig
    */
    constructor(scope: Construct, id: string, config: DialogflowCxIntentConfig);
    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 _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _isDefaultNegativeIntent?;
    get isDefaultNegativeIntent(): boolean | cdktf.IResolvable;
    set isDefaultNegativeIntent(value: boolean | cdktf.IResolvable);
    resetIsDefaultNegativeIntent(): void;
    get isDefaultNegativeIntentInput(): boolean | cdktf.IResolvable | undefined;
    private _isDefaultWelcomeIntent?;
    get isDefaultWelcomeIntent(): boolean | cdktf.IResolvable;
    set isDefaultWelcomeIntent(value: boolean | cdktf.IResolvable);
    resetIsDefaultWelcomeIntent(): void;
    get isDefaultWelcomeIntentInput(): boolean | cdktf.IResolvable | undefined;
    private _isFallback?;
    get isFallback(): boolean | cdktf.IResolvable;
    set isFallback(value: boolean | cdktf.IResolvable);
    resetIsFallback(): void;
    get isFallbackInput(): boolean | cdktf.IResolvable | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _languageCode?;
    get languageCode(): string;
    set languageCode(value: string);
    resetLanguageCode(): void;
    get languageCodeInput(): string | undefined;
    get name(): string;
    private _parent?;
    get parent(): string;
    set parent(value: string);
    resetParent(): void;
    get parentInput(): string | undefined;
    private _priority?;
    get priority(): number;
    set priority(value: number);
    resetPriority(): void;
    get priorityInput(): number | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    private _parameters;
    get parameters(): DialogflowCxIntentParametersList;
    putParameters(value: DialogflowCxIntentParameters[] | cdktf.IResolvable): void;
    resetParameters(): void;
    get parametersInput(): cdktf.IResolvable | DialogflowCxIntentParameters[] | undefined;
    private _timeouts;
    get timeouts(): DialogflowCxIntentTimeoutsOutputReference;
    putTimeouts(value: DialogflowCxIntentTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DialogflowCxIntentTimeouts | undefined;
    private _trainingPhrases;
    get trainingPhrases(): DialogflowCxIntentTrainingPhrasesList;
    putTrainingPhrases(value: DialogflowCxIntentTrainingPhrases[] | cdktf.IResolvable): void;
    resetTrainingPhrases(): void;
    get trainingPhrasesInput(): cdktf.IResolvable | DialogflowCxIntentTrainingPhrases[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
