/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CleanRoomsCleanRoomConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#comment CleanRoomsCleanRoom#comment}
    */
    readonly comment?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#name CleanRoomsCleanRoom#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#owner CleanRoomsCleanRoom#owner}
    */
    readonly owner?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#remote_detailed_info CleanRoomsCleanRoom#remote_detailed_info}
    */
    readonly remoteDetailedInfo?: CleanRoomsCleanRoomRemoteDetailedInfo;
}
export interface CleanRoomsCleanRoomOutputCatalog {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#catalog_name CleanRoomsCleanRoom#catalog_name}
    */
    readonly catalogName?: string;
}
export declare function cleanRoomsCleanRoomOutputCatalogToTerraform(struct?: CleanRoomsCleanRoomOutputCatalog): any;
export declare function cleanRoomsCleanRoomOutputCatalogToHclTerraform(struct?: CleanRoomsCleanRoomOutputCatalog): any;
export declare class CleanRoomsCleanRoomOutputCatalogOutputReference 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(): CleanRoomsCleanRoomOutputCatalog | undefined;
    set internalValue(value: CleanRoomsCleanRoomOutputCatalog | undefined);
    private _catalogName?;
    get catalogName(): string;
    set catalogName(value: string);
    resetCatalogName(): void;
    get catalogNameInput(): string | undefined;
    get status(): string;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoCollaborators {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#collaborator_alias CleanRoomsCleanRoom#collaborator_alias}
    */
    readonly collaboratorAlias: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#global_metastore_id CleanRoomsCleanRoom#global_metastore_id}
    */
    readonly globalMetastoreId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#invite_recipient_email CleanRoomsCleanRoom#invite_recipient_email}
    */
    readonly inviteRecipientEmail?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#invite_recipient_workspace_id CleanRoomsCleanRoom#invite_recipient_workspace_id}
    */
    readonly inviteRecipientWorkspaceId?: number;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoCollaboratorsToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoCollaborators | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoCollaboratorsToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoCollaborators | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoCollaboratorsOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoCollaborators | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoCollaborators | cdktf.IResolvable | undefined);
    private _collaboratorAlias?;
    get collaboratorAlias(): string;
    set collaboratorAlias(value: string);
    get collaboratorAliasInput(): string | undefined;
    get displayName(): string;
    private _globalMetastoreId?;
    get globalMetastoreId(): string;
    set globalMetastoreId(value: string);
    resetGlobalMetastoreId(): void;
    get globalMetastoreIdInput(): string | undefined;
    private _inviteRecipientEmail?;
    get inviteRecipientEmail(): string;
    set inviteRecipientEmail(value: string);
    resetInviteRecipientEmail(): void;
    get inviteRecipientEmailInput(): string | undefined;
    private _inviteRecipientWorkspaceId?;
    get inviteRecipientWorkspaceId(): number;
    set inviteRecipientWorkspaceId(value: number);
    resetInviteRecipientWorkspaceId(): void;
    get inviteRecipientWorkspaceIdInput(): number | undefined;
    get organizationName(): string;
}
export declare class CleanRoomsCleanRoomRemoteDetailedInfoCollaboratorsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CleanRoomsCleanRoomRemoteDetailedInfoCollaborators[] | 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): CleanRoomsCleanRoomRemoteDetailedInfoCollaboratorsOutputReference;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfile {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#compliance_standards CleanRoomsCleanRoom#compliance_standards}
    */
    readonly complianceStandards?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#is_enabled CleanRoomsCleanRoom#is_enabled}
    */
    readonly isEnabled?: boolean | cdktf.IResolvable;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfileToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfile): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfileToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfile): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfileOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfile | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfile | undefined);
    private _complianceStandards?;
    get complianceStandards(): string[];
    set complianceStandards(value: string[]);
    resetComplianceStandards(): void;
    get complianceStandardsInput(): string[] | undefined;
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    resetIsEnabled(): void;
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoCreator {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#collaborator_alias CleanRoomsCleanRoom#collaborator_alias}
    */
    readonly collaboratorAlias: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#global_metastore_id CleanRoomsCleanRoom#global_metastore_id}
    */
    readonly globalMetastoreId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#invite_recipient_email CleanRoomsCleanRoom#invite_recipient_email}
    */
    readonly inviteRecipientEmail?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#invite_recipient_workspace_id CleanRoomsCleanRoom#invite_recipient_workspace_id}
    */
    readonly inviteRecipientWorkspaceId?: number;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoCreatorToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoCreator): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoCreatorToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoCreator): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoCreatorOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoCreator | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoCreator | undefined);
    private _collaboratorAlias?;
    get collaboratorAlias(): string;
    set collaboratorAlias(value: string);
    get collaboratorAliasInput(): string | undefined;
    get displayName(): string;
    private _globalMetastoreId?;
    get globalMetastoreId(): string;
    set globalMetastoreId(value: string);
    resetGlobalMetastoreId(): void;
    get globalMetastoreIdInput(): string | undefined;
    private _inviteRecipientEmail?;
    get inviteRecipientEmail(): string;
    set inviteRecipientEmail(value: string);
    resetInviteRecipientEmail(): void;
    get inviteRecipientEmailInput(): string | undefined;
    private _inviteRecipientWorkspaceId?;
    get inviteRecipientWorkspaceId(): number;
    set inviteRecipientWorkspaceId(value: number);
    resetInviteRecipientWorkspaceId(): void;
    get inviteRecipientWorkspaceIdInput(): number | undefined;
    get organizationName(): string;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#destination CleanRoomsCleanRoom#destination}
    */
    readonly destination?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#protocol CleanRoomsCleanRoom#protocol}
    */
    readonly protocol?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#type CleanRoomsCleanRoom#type}
    */
    readonly type?: string;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinationsToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinationsToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinationsOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations | cdktf.IResolvable | undefined);
    private _destination?;
    get destination(): string;
    set destination(value: string);
    resetDestination(): void;
    get destinationInput(): string | undefined;
    private _protocol?;
    get protocol(): string;
    set protocol(value: string);
    resetProtocol(): void;
    get protocolInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
}
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinationsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations[] | 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): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinationsOutputReference;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#allowed_paths CleanRoomsCleanRoom#allowed_paths}
    */
    readonly allowedPaths?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#azure_container CleanRoomsCleanRoom#azure_container}
    */
    readonly azureContainer?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#azure_dns_zone CleanRoomsCleanRoom#azure_dns_zone}
    */
    readonly azureDnsZone?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#azure_storage_account CleanRoomsCleanRoom#azure_storage_account}
    */
    readonly azureStorageAccount?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#azure_storage_service CleanRoomsCleanRoom#azure_storage_service}
    */
    readonly azureStorageService?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#bucket_name CleanRoomsCleanRoom#bucket_name}
    */
    readonly bucketName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#region CleanRoomsCleanRoom#region}
    */
    readonly region?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#type CleanRoomsCleanRoom#type}
    */
    readonly type?: string;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinationsToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinationsToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinationsOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations | cdktf.IResolvable | undefined);
    private _allowedPaths?;
    get allowedPaths(): string[];
    set allowedPaths(value: string[]);
    resetAllowedPaths(): void;
    get allowedPathsInput(): string[] | undefined;
    private _azureContainer?;
    get azureContainer(): string;
    set azureContainer(value: string);
    resetAzureContainer(): void;
    get azureContainerInput(): string | undefined;
    private _azureDnsZone?;
    get azureDnsZone(): string;
    set azureDnsZone(value: string);
    resetAzureDnsZone(): void;
    get azureDnsZoneInput(): string | undefined;
    private _azureStorageAccount?;
    get azureStorageAccount(): string;
    set azureStorageAccount(value: string);
    resetAzureStorageAccount(): void;
    get azureStorageAccountInput(): string | undefined;
    private _azureStorageService?;
    get azureStorageService(): string;
    set azureStorageService(value: string);
    resetAzureStorageService(): void;
    get azureStorageServiceInput(): string | undefined;
    private _bucketName?;
    get bucketName(): string;
    set bucketName(value: string);
    resetBucketName(): void;
    get bucketNameInput(): string | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
}
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinationsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations[] | 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): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinationsOutputReference;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#log_only_mode_type CleanRoomsCleanRoom#log_only_mode_type}
    */
    readonly logOnlyModeType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#workloads CleanRoomsCleanRoom#workloads}
    */
    readonly workloads?: string[];
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyModeToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyModeToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyModeOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode | cdktf.IResolvable | undefined);
    private _logOnlyModeType?;
    get logOnlyModeType(): string;
    set logOnlyModeType(value: string);
    resetLogOnlyModeType(): void;
    get logOnlyModeTypeInput(): string | undefined;
    private _workloads?;
    get workloads(): string[];
    set workloads(value: string[]);
    resetWorkloads(): void;
    get workloadsInput(): string[] | undefined;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#allowed_internet_destinations CleanRoomsCleanRoom#allowed_internet_destinations}
    */
    readonly allowedInternetDestinations?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations[] | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#allowed_storage_destinations CleanRoomsCleanRoom#allowed_storage_destinations}
    */
    readonly allowedStorageDestinations?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations[] | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#log_only_mode CleanRoomsCleanRoom#log_only_mode}
    */
    readonly logOnlyMode?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#restriction_mode CleanRoomsCleanRoom#restriction_mode}
    */
    readonly restrictionMode?: string;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess | cdktf.IResolvable | undefined);
    private _allowedInternetDestinations;
    get allowedInternetDestinations(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinationsList;
    putAllowedInternetDestinations(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations[] | cdktf.IResolvable): void;
    resetAllowedInternetDestinations(): void;
    get allowedInternetDestinationsInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedInternetDestinations[] | undefined;
    private _allowedStorageDestinations;
    get allowedStorageDestinations(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinationsList;
    putAllowedStorageDestinations(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations[] | cdktf.IResolvable): void;
    resetAllowedStorageDestinations(): void;
    get allowedStorageDestinationsInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessAllowedStorageDestinations[] | undefined;
    private _logOnlyMode;
    get logOnlyMode(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyModeOutputReference;
    putLogOnlyMode(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode): void;
    resetLogOnlyMode(): void;
    get logOnlyModeInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessLogOnlyMode | undefined;
    private _restrictionMode?;
    get restrictionMode(): string;
    set restrictionMode(value: string);
    resetRestrictionMode(): void;
    get restrictionModeInput(): string | undefined;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#internet_access CleanRoomsCleanRoom#internet_access}
    */
    readonly internetAccess?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy | cdktf.IResolvable | undefined);
    private _internetAccess;
    get internetAccess(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccessOutputReference;
    putInternetAccess(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess): void;
    resetInternetAccess(): void;
    get internetAccessInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyInternetAccess | undefined;
}
export interface CleanRoomsCleanRoomRemoteDetailedInfo {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#cloud_vendor CleanRoomsCleanRoom#cloud_vendor}
    */
    readonly cloudVendor?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#collaborators CleanRoomsCleanRoom#collaborators}
    */
    readonly collaborators?: CleanRoomsCleanRoomRemoteDetailedInfoCollaborators[] | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#egress_network_policy CleanRoomsCleanRoom#egress_network_policy}
    */
    readonly egressNetworkPolicy?: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#region CleanRoomsCleanRoom#region}
    */
    readonly region?: string;
}
export declare function cleanRoomsCleanRoomRemoteDetailedInfoToTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfo | cdktf.IResolvable): any;
export declare function cleanRoomsCleanRoomRemoteDetailedInfoToHclTerraform(struct?: CleanRoomsCleanRoomRemoteDetailedInfo | cdktf.IResolvable): any;
export declare class CleanRoomsCleanRoomRemoteDetailedInfoOutputReference 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(): CleanRoomsCleanRoomRemoteDetailedInfo | cdktf.IResolvable | undefined;
    set internalValue(value: CleanRoomsCleanRoomRemoteDetailedInfo | cdktf.IResolvable | undefined);
    get centralCleanRoomId(): string;
    private _cloudVendor?;
    get cloudVendor(): string;
    set cloudVendor(value: string);
    resetCloudVendor(): void;
    get cloudVendorInput(): string | undefined;
    private _collaborators;
    get collaborators(): CleanRoomsCleanRoomRemoteDetailedInfoCollaboratorsList;
    putCollaborators(value: CleanRoomsCleanRoomRemoteDetailedInfoCollaborators[] | cdktf.IResolvable): void;
    resetCollaborators(): void;
    get collaboratorsInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfoCollaborators[] | undefined;
    private _complianceSecurityProfile;
    get complianceSecurityProfile(): CleanRoomsCleanRoomRemoteDetailedInfoComplianceSecurityProfileOutputReference;
    private _creator;
    get creator(): CleanRoomsCleanRoomRemoteDetailedInfoCreatorOutputReference;
    private _egressNetworkPolicy;
    get egressNetworkPolicy(): CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicyOutputReference;
    putEgressNetworkPolicy(value: CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy): void;
    resetEgressNetworkPolicy(): void;
    get egressNetworkPolicyInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfoEgressNetworkPolicy | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room databricks_clean_rooms_clean_room}
*/
export declare class CleanRoomsCleanRoom extends cdktf.TerraformResource {
    static readonly tfResourceType = "databricks_clean_rooms_clean_room";
    /**
    * Generates CDKTF code for importing a CleanRoomsCleanRoom 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 CleanRoomsCleanRoom to import
    * @param importFromId The id of the existing CleanRoomsCleanRoom that should be imported. Refer to the {@link https://registry.terraform.io/providers/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CleanRoomsCleanRoom 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/databricks/databricks/1.86.0/docs/resources/clean_rooms_clean_room databricks_clean_rooms_clean_room} 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 CleanRoomsCleanRoomConfig = {}
    */
    constructor(scope: Construct, id: string, config?: CleanRoomsCleanRoomConfig);
    get accessRestricted(): string;
    private _comment?;
    get comment(): string;
    set comment(value: string);
    resetComment(): void;
    get commentInput(): string | undefined;
    get createdAt(): number;
    get localCollaboratorAlias(): string;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _outputCatalog;
    get outputCatalog(): CleanRoomsCleanRoomOutputCatalogOutputReference;
    private _owner?;
    get owner(): string;
    set owner(value: string);
    resetOwner(): void;
    get ownerInput(): string | undefined;
    private _remoteDetailedInfo;
    get remoteDetailedInfo(): CleanRoomsCleanRoomRemoteDetailedInfoOutputReference;
    putRemoteDetailedInfo(value: CleanRoomsCleanRoomRemoteDetailedInfo): void;
    resetRemoteDetailedInfo(): void;
    get remoteDetailedInfoInput(): cdktf.IResolvable | CleanRoomsCleanRoomRemoteDetailedInfo | undefined;
    get status(): string;
    get updatedAt(): number;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
