/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DialogflowCxWebhookConfig extends cdktf.TerraformMetaArguments {
    /**
    * Indicates whether the webhook is disabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#disabled DialogflowCxWebhook#disabled}
    */
    readonly disabled?: boolean | cdktf.IResolvable;
    /**
    * The human-readable name of the webhook, unique within the agent.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#display_name DialogflowCxWebhook#display_name}
    */
    readonly displayName: string;
    /**
    * Deprecated. Indicates if automatic spell correction is enabled in detect intent requests.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#enable_spell_correction DialogflowCxWebhook#enable_spell_correction}
    */
    readonly enableSpellCorrection?: boolean | cdktf.IResolvable;
    /**
    * Deprecated. Determines whether this agent should log conversation queries.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#enable_stackdriver_logging DialogflowCxWebhook#enable_stackdriver_logging}
    */
    readonly enableStackdriverLogging?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#id DialogflowCxWebhook#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 agent to create a webhook for.
    * Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#parent DialogflowCxWebhook#parent}
    */
    readonly parent?: string;
    /**
    * Deprecated. 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.50.0/docs/resources/dialogflow_cx_webhook#security_settings DialogflowCxWebhook#security_settings}
    */
    readonly securitySettings?: string;
    /**
    * Webhook execution timeout.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#timeout DialogflowCxWebhook#timeout}
    */
    readonly timeout?: string;
    /**
    * generic_web_service block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#generic_web_service DialogflowCxWebhook#generic_web_service}
    */
    readonly genericWebService?: DialogflowCxWebhookGenericWebService;
    /**
    * service_directory block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#service_directory DialogflowCxWebhook#service_directory}
    */
    readonly serviceDirectory?: DialogflowCxWebhookServiceDirectory;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#timeouts DialogflowCxWebhook#timeouts}
    */
    readonly timeouts?: DialogflowCxWebhookTimeouts;
}
export interface DialogflowCxWebhookGenericWebServiceOauthConfig {
    /**
    * The client ID provided by the 3rd party platform.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#client_id DialogflowCxWebhook#client_id}
    */
    readonly clientId: string;
    /**
    * The client secret provided by the 3rd party platform.  If the
    * 'secret_version_for_client_secret' field is set, this field will be
    * ignored.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#client_secret DialogflowCxWebhook#client_secret}
    */
    readonly clientSecret?: string;
    /**
    * The OAuth scopes to grant.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#scopes DialogflowCxWebhook#scopes}
    */
    readonly scopes?: string[];
    /**
    * The name of the SecretManager secret version resource storing the
    * client secret. If this field is set, the 'client_secret' field will be
    * ignored.
    * Format: 'projects/{project}/secrets/{secret}/versions/{version}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_version_for_client_secret DialogflowCxWebhook#secret_version_for_client_secret}
    */
    readonly secretVersionForClientSecret?: string;
    /**
    * The token endpoint provided by the 3rd party platform to exchange an
    * access token.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#token_endpoint DialogflowCxWebhook#token_endpoint}
    */
    readonly tokenEndpoint: string;
}
export declare function dialogflowCxWebhookGenericWebServiceOauthConfigToTerraform(struct?: DialogflowCxWebhookGenericWebServiceOauthConfigOutputReference | DialogflowCxWebhookGenericWebServiceOauthConfig): any;
export declare function dialogflowCxWebhookGenericWebServiceOauthConfigToHclTerraform(struct?: DialogflowCxWebhookGenericWebServiceOauthConfigOutputReference | DialogflowCxWebhookGenericWebServiceOauthConfig): any;
export declare class DialogflowCxWebhookGenericWebServiceOauthConfigOutputReference 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(): DialogflowCxWebhookGenericWebServiceOauthConfig | undefined;
    set internalValue(value: DialogflowCxWebhookGenericWebServiceOauthConfig | undefined);
    private _clientId?;
    get clientId(): string;
    set clientId(value: string);
    get clientIdInput(): string | undefined;
    private _clientSecret?;
    get clientSecret(): string;
    set clientSecret(value: string);
    resetClientSecret(): void;
    get clientSecretInput(): string | undefined;
    private _scopes?;
    get scopes(): string[];
    set scopes(value: string[]);
    resetScopes(): void;
    get scopesInput(): string[] | undefined;
    private _secretVersionForClientSecret?;
    get secretVersionForClientSecret(): string;
    set secretVersionForClientSecret(value: string);
    resetSecretVersionForClientSecret(): void;
    get secretVersionForClientSecretInput(): string | undefined;
    private _tokenEndpoint?;
    get tokenEndpoint(): string;
    set tokenEndpoint(value: string);
    get tokenEndpointInput(): string | undefined;
}
export interface DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#key DialogflowCxWebhook#key}
    */
    readonly key: string;
    /**
    * The SecretManager secret version resource storing the header value.
    * Format: 'projects/{project}/secrets/{secret}/versions/{version}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_version DialogflowCxWebhook#secret_version}
    */
    readonly secretVersion: string;
}
export declare function dialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeadersToTerraform(struct?: DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable): any;
export declare function dialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeadersToHclTerraform(struct?: DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable): any;
export declare class DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeadersOutputReference 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(): DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable | undefined);
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _secretVersion?;
    get secretVersion(): string;
    set secretVersion(value: string);
    get secretVersionInput(): string | undefined;
}
export declare class DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeadersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders[] | 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): DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeadersOutputReference;
}
export interface DialogflowCxWebhookGenericWebService {
    /**
    * Specifies a list of allowed custom CA certificates (in DER format) for
    * HTTPS verification. This overrides the default SSL trust store. If this
    * is empty or unspecified, Dialogflow will use Google's default trust store
    * to verify certificates.
    * N.B. Make sure the HTTPS server certificates are signed with "subject alt
    * name". For instance a certificate can be self-signed using the following
    * command,
    * openssl x509 -req -days 200 -in example.com.csr \
    * -signkey example.com.key \
    * -out example.com.crt \
    * -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#allowed_ca_certs DialogflowCxWebhook#allowed_ca_certs}
    */
    readonly allowedCaCerts?: string[];
    /**
    * HTTP method for the flexible webhook calls. Standard webhook always uses
    * POST. Possible values: ["POST", "GET", "HEAD", "PUT", "DELETE", "PATCH", "OPTIONS"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#http_method DialogflowCxWebhook#http_method}
    */
    readonly httpMethod?: string;
    /**
    * Maps the values extracted from specific fields of the flexible webhook
    * response into session parameters.
    * - Key: session parameter name
    * - Value: field path in the webhook response
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#parameter_mapping DialogflowCxWebhook#parameter_mapping}
    */
    readonly parameterMapping?: {
        [key: string]: string;
    };
    /**
    * Defines a custom JSON object as request body to send to flexible webhook.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#request_body DialogflowCxWebhook#request_body}
    */
    readonly requestBody?: string;
    /**
    * The HTTP request headers to send together with webhook requests.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#request_headers DialogflowCxWebhook#request_headers}
    */
    readonly requestHeaders?: {
        [key: string]: string;
    };
    /**
    * The SecretManager secret version resource storing the username:password
    * pair for HTTP Basic authentication.
    * Format: 'projects/{project}/secrets/{secret}/versions/{version}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_version_for_username_password DialogflowCxWebhook#secret_version_for_username_password}
    */
    readonly secretVersionForUsernamePassword?: string;
    /**
    * Indicate the auth token type generated from the [Diglogflow service
    * agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent).
    * The generated token is sent in the Authorization header. Possible values: ["NONE", "ID_TOKEN", "ACCESS_TOKEN"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#service_agent_auth DialogflowCxWebhook#service_agent_auth}
    */
    readonly serviceAgentAuth?: string;
    /**
    * The webhook URI for receiving POST requests. It must use https protocol.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#uri DialogflowCxWebhook#uri}
    */
    readonly uri: string;
    /**
    * Type of the webhook. Possible values: ["STANDARD", "FLEXIBLE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#webhook_type DialogflowCxWebhook#webhook_type}
    */
    readonly webhookType?: string;
    /**
    * oauth_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#oauth_config DialogflowCxWebhook#oauth_config}
    */
    readonly oauthConfig?: DialogflowCxWebhookGenericWebServiceOauthConfig;
    /**
    * secret_versions_for_request_headers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_versions_for_request_headers DialogflowCxWebhook#secret_versions_for_request_headers}
    */
    readonly secretVersionsForRequestHeaders?: DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders[] | cdktf.IResolvable;
}
export declare function dialogflowCxWebhookGenericWebServiceToTerraform(struct?: DialogflowCxWebhookGenericWebServiceOutputReference | DialogflowCxWebhookGenericWebService): any;
export declare function dialogflowCxWebhookGenericWebServiceToHclTerraform(struct?: DialogflowCxWebhookGenericWebServiceOutputReference | DialogflowCxWebhookGenericWebService): any;
export declare class DialogflowCxWebhookGenericWebServiceOutputReference 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(): DialogflowCxWebhookGenericWebService | undefined;
    set internalValue(value: DialogflowCxWebhookGenericWebService | undefined);
    private _allowedCaCerts?;
    get allowedCaCerts(): string[];
    set allowedCaCerts(value: string[]);
    resetAllowedCaCerts(): void;
    get allowedCaCertsInput(): string[] | undefined;
    private _httpMethod?;
    get httpMethod(): string;
    set httpMethod(value: string);
    resetHttpMethod(): void;
    get httpMethodInput(): string | undefined;
    private _parameterMapping?;
    get parameterMapping(): {
        [key: string]: string;
    };
    set parameterMapping(value: {
        [key: string]: string;
    });
    resetParameterMapping(): void;
    get parameterMappingInput(): {
        [key: string]: string;
    } | undefined;
    private _requestBody?;
    get requestBody(): string;
    set requestBody(value: string);
    resetRequestBody(): void;
    get requestBodyInput(): string | undefined;
    private _requestHeaders?;
    get requestHeaders(): {
        [key: string]: string;
    };
    set requestHeaders(value: {
        [key: string]: string;
    });
    resetRequestHeaders(): void;
    get requestHeadersInput(): {
        [key: string]: string;
    } | undefined;
    private _secretVersionForUsernamePassword?;
    get secretVersionForUsernamePassword(): string;
    set secretVersionForUsernamePassword(value: string);
    resetSecretVersionForUsernamePassword(): void;
    get secretVersionForUsernamePasswordInput(): string | undefined;
    private _serviceAgentAuth?;
    get serviceAgentAuth(): string;
    set serviceAgentAuth(value: string);
    resetServiceAgentAuth(): void;
    get serviceAgentAuthInput(): string | undefined;
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
    private _webhookType?;
    get webhookType(): string;
    set webhookType(value: string);
    resetWebhookType(): void;
    get webhookTypeInput(): string | undefined;
    private _oauthConfig;
    get oauthConfig(): DialogflowCxWebhookGenericWebServiceOauthConfigOutputReference;
    putOauthConfig(value: DialogflowCxWebhookGenericWebServiceOauthConfig): void;
    resetOauthConfig(): void;
    get oauthConfigInput(): DialogflowCxWebhookGenericWebServiceOauthConfig | undefined;
    private _secretVersionsForRequestHeaders;
    get secretVersionsForRequestHeaders(): DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeadersList;
    putSecretVersionsForRequestHeaders(value: DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders[] | cdktf.IResolvable): void;
    resetSecretVersionsForRequestHeaders(): void;
    get secretVersionsForRequestHeadersInput(): cdktf.IResolvable | DialogflowCxWebhookGenericWebServiceSecretVersionsForRequestHeaders[] | undefined;
}
export interface DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig {
    /**
    * The client ID provided by the 3rd party platform.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#client_id DialogflowCxWebhook#client_id}
    */
    readonly clientId: string;
    /**
    * The client secret provided by the 3rd party platform.  If the
    * 'secret_version_for_client_secret' field is set, this field will be
    * ignored.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#client_secret DialogflowCxWebhook#client_secret}
    */
    readonly clientSecret?: string;
    /**
    * The OAuth scopes to grant.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#scopes DialogflowCxWebhook#scopes}
    */
    readonly scopes?: string[];
    /**
    * The name of the SecretManager secret version resource storing the
    * client secret. If this field is set, the 'client_secret' field will be
    * ignored.
    * Format: 'projects/{project}/secrets/{secret}/versions/{version}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_version_for_client_secret DialogflowCxWebhook#secret_version_for_client_secret}
    */
    readonly secretVersionForClientSecret?: string;
    /**
    * The token endpoint provided by the 3rd party platform to exchange an
    * access token.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#token_endpoint DialogflowCxWebhook#token_endpoint}
    */
    readonly tokenEndpoint: string;
}
export declare function dialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfigToTerraform(struct?: DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfigOutputReference | DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig): any;
export declare function dialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfigToHclTerraform(struct?: DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfigOutputReference | DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig): any;
export declare class DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfigOutputReference 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(): DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig | undefined;
    set internalValue(value: DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig | undefined);
    private _clientId?;
    get clientId(): string;
    set clientId(value: string);
    get clientIdInput(): string | undefined;
    private _clientSecret?;
    get clientSecret(): string;
    set clientSecret(value: string);
    resetClientSecret(): void;
    get clientSecretInput(): string | undefined;
    private _scopes?;
    get scopes(): string[];
    set scopes(value: string[]);
    resetScopes(): void;
    get scopesInput(): string[] | undefined;
    private _secretVersionForClientSecret?;
    get secretVersionForClientSecret(): string;
    set secretVersionForClientSecret(value: string);
    resetSecretVersionForClientSecret(): void;
    get secretVersionForClientSecretInput(): string | undefined;
    private _tokenEndpoint?;
    get tokenEndpoint(): string;
    set tokenEndpoint(value: string);
    get tokenEndpointInput(): string | undefined;
}
export interface DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#key DialogflowCxWebhook#key}
    */
    readonly key: string;
    /**
    * The SecretManager secret version resource storing the header value.
    * Format: 'projects/{project}/secrets/{secret}/versions/{version}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_version DialogflowCxWebhook#secret_version}
    */
    readonly secretVersion: string;
}
export declare function dialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeadersToTerraform(struct?: DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable): any;
export declare function dialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeadersToHclTerraform(struct?: DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable): any;
export declare class DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeadersOutputReference 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(): DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders | cdktf.IResolvable | undefined);
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _secretVersion?;
    get secretVersion(): string;
    set secretVersion(value: string);
    get secretVersionInput(): string | undefined;
}
export declare class DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeadersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders[] | 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): DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeadersOutputReference;
}
export interface DialogflowCxWebhookServiceDirectoryGenericWebService {
    /**
    * Specifies a list of allowed custom CA certificates (in DER format) for
    * HTTPS verification. This overrides the default SSL trust store. If this
    * is empty or unspecified, Dialogflow will use Google's default trust store
    * to verify certificates.
    * N.B. Make sure the HTTPS server certificates are signed with "subject alt
    * name". For instance a certificate can be self-signed using the following
    * command,
    * openssl x509 -req -days 200 -in example.com.csr \
    * -signkey example.com.key \
    * -out example.com.crt \
    * -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#allowed_ca_certs DialogflowCxWebhook#allowed_ca_certs}
    */
    readonly allowedCaCerts?: string[];
    /**
    * HTTP method for the flexible webhook calls. Standard webhook always uses
    * POST. Possible values: ["POST", "GET", "HEAD", "PUT", "DELETE", "PATCH", "OPTIONS"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#http_method DialogflowCxWebhook#http_method}
    */
    readonly httpMethod?: string;
    /**
    * Maps the values extracted from specific fields of the flexible webhook
    * response into session parameters.
    * - Key: session parameter name
    * - Value: field path in the webhook response
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#parameter_mapping DialogflowCxWebhook#parameter_mapping}
    */
    readonly parameterMapping?: {
        [key: string]: string;
    };
    /**
    * Defines a custom JSON object as request body to send to flexible webhook.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#request_body DialogflowCxWebhook#request_body}
    */
    readonly requestBody?: string;
    /**
    * The HTTP request headers to send together with webhook requests.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#request_headers DialogflowCxWebhook#request_headers}
    */
    readonly requestHeaders?: {
        [key: string]: string;
    };
    /**
    * The SecretManager secret version resource storing the username:password
    * pair for HTTP Basic authentication.
    * Format: 'projects/{project}/secrets/{secret}/versions/{version}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_version_for_username_password DialogflowCxWebhook#secret_version_for_username_password}
    */
    readonly secretVersionForUsernamePassword?: string;
    /**
    * Indicate the auth token type generated from the [Diglogflow service
    * agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent).
    * The generated token is sent in the Authorization header. Possible values: ["NONE", "ID_TOKEN", "ACCESS_TOKEN"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#service_agent_auth DialogflowCxWebhook#service_agent_auth}
    */
    readonly serviceAgentAuth?: string;
    /**
    * The webhook URI for receiving POST requests. It must use https protocol.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#uri DialogflowCxWebhook#uri}
    */
    readonly uri: string;
    /**
    * Type of the webhook. Possible values: ["STANDARD", "FLEXIBLE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#webhook_type DialogflowCxWebhook#webhook_type}
    */
    readonly webhookType?: string;
    /**
    * oauth_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#oauth_config DialogflowCxWebhook#oauth_config}
    */
    readonly oauthConfig?: DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig;
    /**
    * secret_versions_for_request_headers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#secret_versions_for_request_headers DialogflowCxWebhook#secret_versions_for_request_headers}
    */
    readonly secretVersionsForRequestHeaders?: DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders[] | cdktf.IResolvable;
}
export declare function dialogflowCxWebhookServiceDirectoryGenericWebServiceToTerraform(struct?: DialogflowCxWebhookServiceDirectoryGenericWebServiceOutputReference | DialogflowCxWebhookServiceDirectoryGenericWebService): any;
export declare function dialogflowCxWebhookServiceDirectoryGenericWebServiceToHclTerraform(struct?: DialogflowCxWebhookServiceDirectoryGenericWebServiceOutputReference | DialogflowCxWebhookServiceDirectoryGenericWebService): any;
export declare class DialogflowCxWebhookServiceDirectoryGenericWebServiceOutputReference 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(): DialogflowCxWebhookServiceDirectoryGenericWebService | undefined;
    set internalValue(value: DialogflowCxWebhookServiceDirectoryGenericWebService | undefined);
    private _allowedCaCerts?;
    get allowedCaCerts(): string[];
    set allowedCaCerts(value: string[]);
    resetAllowedCaCerts(): void;
    get allowedCaCertsInput(): string[] | undefined;
    private _httpMethod?;
    get httpMethod(): string;
    set httpMethod(value: string);
    resetHttpMethod(): void;
    get httpMethodInput(): string | undefined;
    private _parameterMapping?;
    get parameterMapping(): {
        [key: string]: string;
    };
    set parameterMapping(value: {
        [key: string]: string;
    });
    resetParameterMapping(): void;
    get parameterMappingInput(): {
        [key: string]: string;
    } | undefined;
    private _requestBody?;
    get requestBody(): string;
    set requestBody(value: string);
    resetRequestBody(): void;
    get requestBodyInput(): string | undefined;
    private _requestHeaders?;
    get requestHeaders(): {
        [key: string]: string;
    };
    set requestHeaders(value: {
        [key: string]: string;
    });
    resetRequestHeaders(): void;
    get requestHeadersInput(): {
        [key: string]: string;
    } | undefined;
    private _secretVersionForUsernamePassword?;
    get secretVersionForUsernamePassword(): string;
    set secretVersionForUsernamePassword(value: string);
    resetSecretVersionForUsernamePassword(): void;
    get secretVersionForUsernamePasswordInput(): string | undefined;
    private _serviceAgentAuth?;
    get serviceAgentAuth(): string;
    set serviceAgentAuth(value: string);
    resetServiceAgentAuth(): void;
    get serviceAgentAuthInput(): string | undefined;
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
    private _webhookType?;
    get webhookType(): string;
    set webhookType(value: string);
    resetWebhookType(): void;
    get webhookTypeInput(): string | undefined;
    private _oauthConfig;
    get oauthConfig(): DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfigOutputReference;
    putOauthConfig(value: DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig): void;
    resetOauthConfig(): void;
    get oauthConfigInput(): DialogflowCxWebhookServiceDirectoryGenericWebServiceOauthConfig | undefined;
    private _secretVersionsForRequestHeaders;
    get secretVersionsForRequestHeaders(): DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeadersList;
    putSecretVersionsForRequestHeaders(value: DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders[] | cdktf.IResolvable): void;
    resetSecretVersionsForRequestHeaders(): void;
    get secretVersionsForRequestHeadersInput(): cdktf.IResolvable | DialogflowCxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeaders[] | undefined;
}
export interface DialogflowCxWebhookServiceDirectory {
    /**
    * The name of Service Directory service.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#service DialogflowCxWebhook#service}
    */
    readonly service: string;
    /**
    * generic_web_service block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#generic_web_service DialogflowCxWebhook#generic_web_service}
    */
    readonly genericWebService?: DialogflowCxWebhookServiceDirectoryGenericWebService;
}
export declare function dialogflowCxWebhookServiceDirectoryToTerraform(struct?: DialogflowCxWebhookServiceDirectoryOutputReference | DialogflowCxWebhookServiceDirectory): any;
export declare function dialogflowCxWebhookServiceDirectoryToHclTerraform(struct?: DialogflowCxWebhookServiceDirectoryOutputReference | DialogflowCxWebhookServiceDirectory): any;
export declare class DialogflowCxWebhookServiceDirectoryOutputReference 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(): DialogflowCxWebhookServiceDirectory | undefined;
    set internalValue(value: DialogflowCxWebhookServiceDirectory | undefined);
    private _service?;
    get service(): string;
    set service(value: string);
    get serviceInput(): string | undefined;
    private _genericWebService;
    get genericWebService(): DialogflowCxWebhookServiceDirectoryGenericWebServiceOutputReference;
    putGenericWebService(value: DialogflowCxWebhookServiceDirectoryGenericWebService): void;
    resetGenericWebService(): void;
    get genericWebServiceInput(): DialogflowCxWebhookServiceDirectoryGenericWebService | undefined;
}
export interface DialogflowCxWebhookTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#create DialogflowCxWebhook#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#delete DialogflowCxWebhook#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#update DialogflowCxWebhook#update}
    */
    readonly update?: string;
}
export declare function dialogflowCxWebhookTimeoutsToTerraform(struct?: DialogflowCxWebhookTimeouts | cdktf.IResolvable): any;
export declare function dialogflowCxWebhookTimeoutsToHclTerraform(struct?: DialogflowCxWebhookTimeouts | cdktf.IResolvable): any;
export declare class DialogflowCxWebhookTimeoutsOutputReference 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(): DialogflowCxWebhookTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DialogflowCxWebhookTimeouts | 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/dialogflow_cx_webhook google_dialogflow_cx_webhook}
*/
export declare class DialogflowCxWebhook extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_dialogflow_cx_webhook";
    /**
    * Generates CDKTF code for importing a DialogflowCxWebhook 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 DialogflowCxWebhook to import
    * @param importFromId The id of the existing DialogflowCxWebhook that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/dialogflow_cx_webhook#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DialogflowCxWebhook 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/dialogflow_cx_webhook google_dialogflow_cx_webhook} 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 DialogflowCxWebhookConfig
    */
    constructor(scope: Construct, id: string, config: DialogflowCxWebhookConfig);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    resetDisabled(): void;
    get disabledInput(): boolean | cdktf.IResolvable | 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;
    get name(): string;
    private _parent?;
    get parent(): string;
    set parent(value: string);
    resetParent(): void;
    get parentInput(): string | undefined;
    private _securitySettings?;
    get securitySettings(): string;
    set securitySettings(value: string);
    resetSecuritySettings(): void;
    get securitySettingsInput(): string | undefined;
    get startFlow(): string;
    private _timeout?;
    get timeout(): string;
    set timeout(value: string);
    resetTimeout(): void;
    get timeoutInput(): string | undefined;
    private _genericWebService;
    get genericWebService(): DialogflowCxWebhookGenericWebServiceOutputReference;
    putGenericWebService(value: DialogflowCxWebhookGenericWebService): void;
    resetGenericWebService(): void;
    get genericWebServiceInput(): DialogflowCxWebhookGenericWebService | undefined;
    private _serviceDirectory;
    get serviceDirectory(): DialogflowCxWebhookServiceDirectoryOutputReference;
    putServiceDirectory(value: DialogflowCxWebhookServiceDirectory): void;
    resetServiceDirectory(): void;
    get serviceDirectoryInput(): DialogflowCxWebhookServiceDirectory | undefined;
    private _timeouts;
    get timeouts(): DialogflowCxWebhookTimeoutsOutputReference;
    putTimeouts(value: DialogflowCxWebhookTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DialogflowCxWebhookTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
