/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface BigqueryAnalyticsHubListingSubscriptionConfig extends cdktf.TerraformMetaArguments {
    /**
    * The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#data_exchange_id BigqueryAnalyticsHubListingSubscription#data_exchange_id}
    */
    readonly dataExchangeId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#id BigqueryAnalyticsHubListingSubscription#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 ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#listing_id BigqueryAnalyticsHubListingSubscription#listing_id}
    */
    readonly listingId: string;
    /**
    * The name of the location of the data exchange. Distinct from the location of the destination data set.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#location BigqueryAnalyticsHubListingSubscription#location}
    */
    readonly location: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#project BigqueryAnalyticsHubListingSubscription#project}
    */
    readonly project?: string;
    /**
    * destination_dataset block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#destination_dataset BigqueryAnalyticsHubListingSubscription#destination_dataset}
    */
    readonly destinationDataset: BigqueryAnalyticsHubListingSubscriptionDestinationDataset;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#timeouts BigqueryAnalyticsHubListingSubscription#timeouts}
    */
    readonly timeouts?: BigqueryAnalyticsHubListingSubscriptionTimeouts;
}
export interface BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMap {
}
export declare function bigqueryAnalyticsHubListingSubscriptionLinkedDatasetMapToTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMap): any;
export declare function bigqueryAnalyticsHubListingSubscriptionLinkedDatasetMapToHclTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMap): any;
export declare class BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMapOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMap | undefined;
    set internalValue(value: BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMap | undefined);
    get linkedDataset(): string;
    get listing(): string;
    get resourceName(): string;
}
export declare class BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMapList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMapOutputReference;
}
export interface BigqueryAnalyticsHubListingSubscriptionLinkedResources {
}
export declare function bigqueryAnalyticsHubListingSubscriptionLinkedResourcesToTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionLinkedResources): any;
export declare function bigqueryAnalyticsHubListingSubscriptionLinkedResourcesToHclTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionLinkedResources): any;
export declare class BigqueryAnalyticsHubListingSubscriptionLinkedResourcesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): BigqueryAnalyticsHubListingSubscriptionLinkedResources | undefined;
    set internalValue(value: BigqueryAnalyticsHubListingSubscriptionLinkedResources | undefined);
    get linkedDataset(): string;
    get listing(): string;
}
export declare class BigqueryAnalyticsHubListingSubscriptionLinkedResourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): BigqueryAnalyticsHubListingSubscriptionLinkedResourcesOutputReference;
}
export interface BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference {
    /**
    * A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#dataset_id BigqueryAnalyticsHubListingSubscription#dataset_id}
    */
    readonly datasetId: string;
    /**
    * The ID of the project containing this dataset.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#project_id BigqueryAnalyticsHubListingSubscription#project_id}
    */
    readonly projectId: string;
}
export declare function bigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReferenceToTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReferenceOutputReference | BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference): any;
export declare function bigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReferenceToHclTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReferenceOutputReference | BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference): any;
export declare class BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReferenceOutputReference 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(): BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference | undefined;
    set internalValue(value: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference | undefined);
    private _datasetId?;
    get datasetId(): string;
    set datasetId(value: string);
    get datasetIdInput(): string | undefined;
    private _projectId?;
    get projectId(): string;
    set projectId(value: string);
    get projectIdInput(): string | undefined;
}
export interface BigqueryAnalyticsHubListingSubscriptionDestinationDataset {
    /**
    * A user-friendly description of the dataset.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#description BigqueryAnalyticsHubListingSubscription#description}
    */
    readonly description?: string;
    /**
    * A descriptive name for the dataset.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#friendly_name BigqueryAnalyticsHubListingSubscription#friendly_name}
    */
    readonly friendlyName?: string;
    /**
    * The labels associated with this dataset. You can use these to
    * organize and group your datasets.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#labels BigqueryAnalyticsHubListingSubscription#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The geographic location where the dataset should reside.
    * See https://cloud.google.com/bigquery/docs/locations for supported locations.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#location BigqueryAnalyticsHubListingSubscription#location}
    */
    readonly location: string;
    /**
    * dataset_reference block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#dataset_reference BigqueryAnalyticsHubListingSubscription#dataset_reference}
    */
    readonly datasetReference: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference;
}
export declare function bigqueryAnalyticsHubListingSubscriptionDestinationDatasetToTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetOutputReference | BigqueryAnalyticsHubListingSubscriptionDestinationDataset): any;
export declare function bigqueryAnalyticsHubListingSubscriptionDestinationDatasetToHclTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetOutputReference | BigqueryAnalyticsHubListingSubscriptionDestinationDataset): any;
export declare class BigqueryAnalyticsHubListingSubscriptionDestinationDatasetOutputReference 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(): BigqueryAnalyticsHubListingSubscriptionDestinationDataset | undefined;
    set internalValue(value: BigqueryAnalyticsHubListingSubscriptionDestinationDataset | undefined);
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _friendlyName?;
    get friendlyName(): string;
    set friendlyName(value: string);
    resetFriendlyName(): void;
    get friendlyNameInput(): 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 _datasetReference;
    get datasetReference(): BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReferenceOutputReference;
    putDatasetReference(value: BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference): void;
    get datasetReferenceInput(): BigqueryAnalyticsHubListingSubscriptionDestinationDatasetDatasetReference | undefined;
}
export interface BigqueryAnalyticsHubListingSubscriptionTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#create BigqueryAnalyticsHubListingSubscription#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#delete BigqueryAnalyticsHubListingSubscription#delete}
    */
    readonly delete?: string;
}
export declare function bigqueryAnalyticsHubListingSubscriptionTimeoutsToTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionTimeouts | cdktf.IResolvable): any;
export declare function bigqueryAnalyticsHubListingSubscriptionTimeoutsToHclTerraform(struct?: BigqueryAnalyticsHubListingSubscriptionTimeouts | cdktf.IResolvable): any;
export declare class BigqueryAnalyticsHubListingSubscriptionTimeoutsOutputReference 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(): BigqueryAnalyticsHubListingSubscriptionTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: BigqueryAnalyticsHubListingSubscriptionTimeouts | 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;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription google_bigquery_analytics_hub_listing_subscription}
*/
export declare class BigqueryAnalyticsHubListingSubscription extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_bigquery_analytics_hub_listing_subscription";
    /**
    * Generates CDKTF code for importing a BigqueryAnalyticsHubListingSubscription 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 BigqueryAnalyticsHubListingSubscription to import
    * @param importFromId The id of the existing BigqueryAnalyticsHubListingSubscription that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.40.0/docs/resources/bigquery_analytics_hub_listing_subscription#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the BigqueryAnalyticsHubListingSubscription 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.40.0/docs/resources/bigquery_analytics_hub_listing_subscription google_bigquery_analytics_hub_listing_subscription} 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 BigqueryAnalyticsHubListingSubscriptionConfig
    */
    constructor(scope: Construct, id: string, config: BigqueryAnalyticsHubListingSubscriptionConfig);
    get creationTime(): string;
    private _dataExchangeId?;
    get dataExchangeId(): string;
    set dataExchangeId(value: string);
    get dataExchangeIdInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get lastModifyTime(): string;
    private _linkedDatasetMap;
    get linkedDatasetMap(): BigqueryAnalyticsHubListingSubscriptionLinkedDatasetMapList;
    private _linkedResources;
    get linkedResources(): BigqueryAnalyticsHubListingSubscriptionLinkedResourcesList;
    private _listingId?;
    get listingId(): string;
    set listingId(value: string);
    get listingIdInput(): string | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    get name(): string;
    get organizationDisplayName(): string;
    get organizationId(): string;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    get resourceType(): string;
    get state(): string;
    get subscriberContact(): string;
    get subscriptionId(): string;
    private _destinationDataset;
    get destinationDataset(): BigqueryAnalyticsHubListingSubscriptionDestinationDatasetOutputReference;
    putDestinationDataset(value: BigqueryAnalyticsHubListingSubscriptionDestinationDataset): void;
    get destinationDatasetInput(): BigqueryAnalyticsHubListingSubscriptionDestinationDataset | undefined;
    private _timeouts;
    get timeouts(): BigqueryAnalyticsHubListingSubscriptionTimeoutsOutputReference;
    putTimeouts(value: BigqueryAnalyticsHubListingSubscriptionTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | BigqueryAnalyticsHubListingSubscriptionTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
