/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface EventarcTriggerConfig extends cdktf.TerraformMetaArguments {
    /**
    * Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#channel EventarcTrigger#channel}
    */
    readonly channel?: string;
    /**
    * Optional. EventDataContentType specifies the type of payload in MIME format that is expected from the CloudEvent data field. This is set to `application/json` if the value is not defined.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#event_data_content_type EventarcTrigger#event_data_content_type}
    */
    readonly eventDataContentType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#id EventarcTrigger#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;
    /**
    * Optional. User labels attached to the triggers that can be used to group resources.
    *
    * **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.23.0/docs/resources/eventarc_trigger#labels EventarcTrigger#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The location for the resource
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#location EventarcTrigger#location}
    */
    readonly location: string;
    /**
    * Required. The resource name of the trigger. Must be unique within the location on the project.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#name EventarcTrigger#name}
    */
    readonly name: string;
    /**
    * The project for the resource
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#project EventarcTrigger#project}
    */
    readonly project?: string;
    /**
    * Optional. The IAM service account email associated with the trigger. The service account represents the identity of the trigger. The principal who calls this API must have `iam.serviceAccounts.actAs` permission in the service account. See https://cloud.google.com/iam/docs/understanding-service-accounts#sa_common for more information. For Cloud Run destinations, this service account is used to generate identity tokens when invoking the service. See https://cloud.google.com/run/docs/triggering/pubsub-push#create-service-account for information on how to invoke authenticated Cloud Run services. In order to create Audit Log triggers, the service account should also have `roles/eventarc.eventReceiver` IAM role.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#service_account EventarcTrigger#service_account}
    */
    readonly serviceAccount?: string;
    /**
    * destination block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#destination EventarcTrigger#destination}
    */
    readonly destination: EventarcTriggerDestination;
    /**
    * matching_criteria block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#matching_criteria EventarcTrigger#matching_criteria}
    */
    readonly matchingCriteria: EventarcTriggerMatchingCriteria[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#timeouts EventarcTrigger#timeouts}
    */
    readonly timeouts?: EventarcTriggerTimeouts;
    /**
    * transport block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#transport EventarcTrigger#transport}
    */
    readonly transport?: EventarcTriggerTransport;
}
export interface EventarcTriggerDestinationCloudRunService {
    /**
    * Optional. The relative path on the Cloud Run service the events should be sent to. The value must conform to the definition of URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#path EventarcTrigger#path}
    */
    readonly path?: string;
    /**
    * Required. The region the Cloud Run service is deployed in.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#region EventarcTrigger#region}
    */
    readonly region?: string;
    /**
    * Required. The name of the Cloud Run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project of the trigger object can be addressed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#service EventarcTrigger#service}
    */
    readonly service: string;
}
export declare function eventarcTriggerDestinationCloudRunServiceToTerraform(struct?: EventarcTriggerDestinationCloudRunServiceOutputReference | EventarcTriggerDestinationCloudRunService): any;
export declare function eventarcTriggerDestinationCloudRunServiceToHclTerraform(struct?: EventarcTriggerDestinationCloudRunServiceOutputReference | EventarcTriggerDestinationCloudRunService): any;
export declare class EventarcTriggerDestinationCloudRunServiceOutputReference 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(): EventarcTriggerDestinationCloudRunService | undefined;
    set internalValue(value: EventarcTriggerDestinationCloudRunService | undefined);
    private _path?;
    get path(): string;
    set path(value: string);
    resetPath(): void;
    get pathInput(): string | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _service?;
    get service(): string;
    set service(value: string);
    get serviceInput(): string | undefined;
}
export interface EventarcTriggerDestinationGke {
    /**
    * Required. The name of the cluster the GKE service is running in. The cluster must be running in the same project as the trigger being created.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#cluster EventarcTrigger#cluster}
    */
    readonly cluster: string;
    /**
    * Required. The name of the Google Compute Engine in which the cluster resides, which can either be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-central1) for regional clusters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#location EventarcTrigger#location}
    */
    readonly location: string;
    /**
    * Required. The namespace the GKE service is running in.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#namespace EventarcTrigger#namespace}
    */
    readonly namespace: string;
    /**
    * Optional. The relative path on the GKE service the events should be sent to. The value must conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route", "route", "route/subroute".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#path EventarcTrigger#path}
    */
    readonly path?: string;
    /**
    * Required. Name of the GKE service.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#service EventarcTrigger#service}
    */
    readonly service: string;
}
export declare function eventarcTriggerDestinationGkeToTerraform(struct?: EventarcTriggerDestinationGkeOutputReference | EventarcTriggerDestinationGke): any;
export declare function eventarcTriggerDestinationGkeToHclTerraform(struct?: EventarcTriggerDestinationGkeOutputReference | EventarcTriggerDestinationGke): any;
export declare class EventarcTriggerDestinationGkeOutputReference 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(): EventarcTriggerDestinationGke | undefined;
    set internalValue(value: EventarcTriggerDestinationGke | undefined);
    private _cluster?;
    get cluster(): string;
    set cluster(value: string);
    get clusterInput(): string | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _namespace?;
    get namespace(): string;
    set namespace(value: string);
    get namespaceInput(): string | undefined;
    private _path?;
    get path(): string;
    set path(value: string);
    resetPath(): void;
    get pathInput(): string | undefined;
    private _service?;
    get service(): string;
    set service(value: string);
    get serviceInput(): string | undefined;
}
export interface EventarcTriggerDestinationHttpEndpoint {
    /**
    * Required. The URI of the HTTP enpdoint. The value must be a RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols are supported. The host can be either a static IP addressable from the VPC specified by the network config, or an internal DNS hostname of the service resolvable via Cloud DNS.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#uri EventarcTrigger#uri}
    */
    readonly uri: string;
}
export declare function eventarcTriggerDestinationHttpEndpointToTerraform(struct?: EventarcTriggerDestinationHttpEndpointOutputReference | EventarcTriggerDestinationHttpEndpoint): any;
export declare function eventarcTriggerDestinationHttpEndpointToHclTerraform(struct?: EventarcTriggerDestinationHttpEndpointOutputReference | EventarcTriggerDestinationHttpEndpoint): any;
export declare class EventarcTriggerDestinationHttpEndpointOutputReference 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(): EventarcTriggerDestinationHttpEndpoint | undefined;
    set internalValue(value: EventarcTriggerDestinationHttpEndpoint | undefined);
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
}
export interface EventarcTriggerDestinationNetworkConfig {
    /**
    * Required. Name of the NetworkAttachment that allows access to the destination VPC. Format: `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}`
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#network_attachment EventarcTrigger#network_attachment}
    */
    readonly networkAttachment: string;
}
export declare function eventarcTriggerDestinationNetworkConfigToTerraform(struct?: EventarcTriggerDestinationNetworkConfigOutputReference | EventarcTriggerDestinationNetworkConfig): any;
export declare function eventarcTriggerDestinationNetworkConfigToHclTerraform(struct?: EventarcTriggerDestinationNetworkConfigOutputReference | EventarcTriggerDestinationNetworkConfig): any;
export declare class EventarcTriggerDestinationNetworkConfigOutputReference 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(): EventarcTriggerDestinationNetworkConfig | undefined;
    set internalValue(value: EventarcTriggerDestinationNetworkConfig | undefined);
    private _networkAttachment?;
    get networkAttachment(): string;
    set networkAttachment(value: string);
    get networkAttachmentInput(): string | undefined;
}
export interface EventarcTriggerDestination {
    /**
    * The resource name of the Workflow whose Executions are triggered by the events. The Workflow resource should be deployed in the same project as the trigger. Format: `projects/{project}/locations/{location}/workflows/{workflow}`
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#workflow EventarcTrigger#workflow}
    */
    readonly workflow?: string;
    /**
    * cloud_run_service block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#cloud_run_service EventarcTrigger#cloud_run_service}
    */
    readonly cloudRunService?: EventarcTriggerDestinationCloudRunService;
    /**
    * gke block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#gke EventarcTrigger#gke}
    */
    readonly gke?: EventarcTriggerDestinationGke;
    /**
    * http_endpoint block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#http_endpoint EventarcTrigger#http_endpoint}
    */
    readonly httpEndpoint?: EventarcTriggerDestinationHttpEndpoint;
    /**
    * network_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#network_config EventarcTrigger#network_config}
    */
    readonly networkConfig?: EventarcTriggerDestinationNetworkConfig;
}
export declare function eventarcTriggerDestinationToTerraform(struct?: EventarcTriggerDestinationOutputReference | EventarcTriggerDestination): any;
export declare function eventarcTriggerDestinationToHclTerraform(struct?: EventarcTriggerDestinationOutputReference | EventarcTriggerDestination): any;
export declare class EventarcTriggerDestinationOutputReference 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(): EventarcTriggerDestination | undefined;
    set internalValue(value: EventarcTriggerDestination | undefined);
    get cloudFunction(): string;
    private _workflow?;
    get workflow(): string;
    set workflow(value: string);
    resetWorkflow(): void;
    get workflowInput(): string | undefined;
    private _cloudRunService;
    get cloudRunService(): EventarcTriggerDestinationCloudRunServiceOutputReference;
    putCloudRunService(value: EventarcTriggerDestinationCloudRunService): void;
    resetCloudRunService(): void;
    get cloudRunServiceInput(): EventarcTriggerDestinationCloudRunService | undefined;
    private _gke;
    get gke(): EventarcTriggerDestinationGkeOutputReference;
    putGke(value: EventarcTriggerDestinationGke): void;
    resetGke(): void;
    get gkeInput(): EventarcTriggerDestinationGke | undefined;
    private _httpEndpoint;
    get httpEndpoint(): EventarcTriggerDestinationHttpEndpointOutputReference;
    putHttpEndpoint(value: EventarcTriggerDestinationHttpEndpoint): void;
    resetHttpEndpoint(): void;
    get httpEndpointInput(): EventarcTriggerDestinationHttpEndpoint | undefined;
    private _networkConfig;
    get networkConfig(): EventarcTriggerDestinationNetworkConfigOutputReference;
    putNetworkConfig(value: EventarcTriggerDestinationNetworkConfig): void;
    resetNetworkConfig(): void;
    get networkConfigInput(): EventarcTriggerDestinationNetworkConfig | undefined;
}
export interface EventarcTriggerMatchingCriteria {
    /**
    * Required. The name of a CloudEvents attribute. Currently, only a subset of attributes are supported for filtering. All triggers MUST provide a filter for the 'type' attribute.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#attribute EventarcTrigger#attribute}
    */
    readonly attribute: string;
    /**
    * Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#operator EventarcTrigger#operator}
    */
    readonly operator?: string;
    /**
    * Required. The value for the attribute. See https://cloud.google.com/eventarc/docs/creating-triggers#trigger-gcloud for available values.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#value EventarcTrigger#value}
    */
    readonly value: string;
}
export declare function eventarcTriggerMatchingCriteriaToTerraform(struct?: EventarcTriggerMatchingCriteria | cdktf.IResolvable): any;
export declare function eventarcTriggerMatchingCriteriaToHclTerraform(struct?: EventarcTriggerMatchingCriteria | cdktf.IResolvable): any;
export declare class EventarcTriggerMatchingCriteriaOutputReference 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(): EventarcTriggerMatchingCriteria | cdktf.IResolvable | undefined;
    set internalValue(value: EventarcTriggerMatchingCriteria | cdktf.IResolvable | undefined);
    private _attribute?;
    get attribute(): string;
    set attribute(value: string);
    get attributeInput(): string | undefined;
    private _operator?;
    get operator(): string;
    set operator(value: string);
    resetOperator(): void;
    get operatorInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class EventarcTriggerMatchingCriteriaList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EventarcTriggerMatchingCriteria[] | 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): EventarcTriggerMatchingCriteriaOutputReference;
}
export interface EventarcTriggerTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#create EventarcTrigger#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#delete EventarcTrigger#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#update EventarcTrigger#update}
    */
    readonly update?: string;
}
export declare function eventarcTriggerTimeoutsToTerraform(struct?: EventarcTriggerTimeouts | cdktf.IResolvable): any;
export declare function eventarcTriggerTimeoutsToHclTerraform(struct?: EventarcTriggerTimeouts | cdktf.IResolvable): any;
export declare class EventarcTriggerTimeoutsOutputReference 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(): EventarcTriggerTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: EventarcTriggerTimeouts | 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 EventarcTriggerTransportPubsub {
    /**
    * Optional. The name of the Pub/Sub topic created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{PROJECT_ID}/topics/{TOPIC_NAME}. You may set an existing topic for triggers of the type google.cloud.pubsub.topic.v1.messagePublished` only. The topic you provide here will not be deleted by Eventarc at trigger deletion.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#topic EventarcTrigger#topic}
    */
    readonly topic?: string;
}
export declare function eventarcTriggerTransportPubsubToTerraform(struct?: EventarcTriggerTransportPubsubOutputReference | EventarcTriggerTransportPubsub): any;
export declare function eventarcTriggerTransportPubsubToHclTerraform(struct?: EventarcTriggerTransportPubsubOutputReference | EventarcTriggerTransportPubsub): any;
export declare class EventarcTriggerTransportPubsubOutputReference 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(): EventarcTriggerTransportPubsub | undefined;
    set internalValue(value: EventarcTriggerTransportPubsub | undefined);
    get subscription(): string;
    private _topic?;
    get topic(): string;
    set topic(value: string);
    resetTopic(): void;
    get topicInput(): string | undefined;
}
export interface EventarcTriggerTransport {
    /**
    * pubsub block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#pubsub EventarcTrigger#pubsub}
    */
    readonly pubsub?: EventarcTriggerTransportPubsub;
}
export declare function eventarcTriggerTransportToTerraform(struct?: EventarcTriggerTransportOutputReference | EventarcTriggerTransport): any;
export declare function eventarcTriggerTransportToHclTerraform(struct?: EventarcTriggerTransportOutputReference | EventarcTriggerTransport): any;
export declare class EventarcTriggerTransportOutputReference 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(): EventarcTriggerTransport | undefined;
    set internalValue(value: EventarcTriggerTransport | undefined);
    private _pubsub;
    get pubsub(): EventarcTriggerTransportPubsubOutputReference;
    putPubsub(value: EventarcTriggerTransportPubsub): void;
    resetPubsub(): void;
    get pubsubInput(): EventarcTriggerTransportPubsub | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger google_eventarc_trigger}
*/
export declare class EventarcTrigger extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_eventarc_trigger";
    /**
    * Generates CDKTF code for importing a EventarcTrigger 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 EventarcTrigger to import
    * @param importFromId The id of the existing EventarcTrigger that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/5.23.0/docs/resources/eventarc_trigger#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the EventarcTrigger 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.23.0/docs/resources/eventarc_trigger google_eventarc_trigger} 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 EventarcTriggerConfig
    */
    constructor(scope: Construct, id: string, config: EventarcTriggerConfig);
    private _channel?;
    get channel(): string;
    set channel(value: string);
    resetChannel(): void;
    get channelInput(): string | undefined;
    private _conditions;
    get conditions(): cdktf.StringMap;
    get createTime(): string;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    get etag(): string;
    private _eventDataContentType?;
    get eventDataContentType(): string;
    set eventDataContentType(value: string);
    resetEventDataContentType(): void;
    get eventDataContentTypeInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _serviceAccount?;
    get serviceAccount(): string;
    set serviceAccount(value: string);
    resetServiceAccount(): void;
    get serviceAccountInput(): string | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get uid(): string;
    get updateTime(): string;
    private _destination;
    get destination(): EventarcTriggerDestinationOutputReference;
    putDestination(value: EventarcTriggerDestination): void;
    get destinationInput(): EventarcTriggerDestination | undefined;
    private _matchingCriteria;
    get matchingCriteria(): EventarcTriggerMatchingCriteriaList;
    putMatchingCriteria(value: EventarcTriggerMatchingCriteria[] | cdktf.IResolvable): void;
    get matchingCriteriaInput(): cdktf.IResolvable | EventarcTriggerMatchingCriteria[] | undefined;
    private _timeouts;
    get timeouts(): EventarcTriggerTimeoutsOutputReference;
    putTimeouts(value: EventarcTriggerTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | EventarcTriggerTimeouts | undefined;
    private _transport;
    get transport(): EventarcTriggerTransportOutputReference;
    putTransport(value: EventarcTriggerTransport): void;
    resetTransport(): void;
    get transportInput(): EventarcTriggerTransport | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
