import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciGloballyDistributedDatabaseShardedDatabaseConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/globally_distributed_database_sharded_database#metadata DataOciGloballyDistributedDatabaseShardedDatabase#metadata}
    */
    readonly metadata?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/globally_distributed_database_sharded_database#sharded_database_id DataOciGloballyDistributedDatabaseShardedDatabase#sharded_database_id}
    */
    readonly shardedDatabaseId: string;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetails {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetailsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetails): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetailsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetails): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetailsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetails | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetails | undefined);
    get kmsKeyId(): string;
    get kmsKeyVersionId(): string;
    get vaultId(): string;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetailsList 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): DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetailsOutputReference;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetails {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetails): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetails): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetails | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetails | undefined);
    get adminPassword(): string;
    get cloudAutonomousVmClusterId(): string;
    get computeCount(): number;
    get containerDatabaseId(): string;
    get containerDatabaseParentId(): string;
    get dataStorageSizeInGbs(): number;
    private _encryptionKeyDetails;
    get encryptionKeyDetails(): DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsEncryptionKeyDetailsList;
    get isAutoScalingEnabled(): cdktf.IResolvable;
    private _metadata;
    get metadata(): cdktf.StringMap;
    get name(): string;
    get peerCloudAutonomousVmClusterId(): string;
    get shardGroup(): string;
    get status(): string;
    get supportingResourceId(): string;
    get timeCreated(): string;
    get timeSslCertificateExpires(): string;
    get timeUpdated(): string;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsList 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): DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsOutputReference;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStrings {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseConnectionStringsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStrings): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseConnectionStringsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStrings): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStringsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStrings | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStrings | undefined);
    private _allConnectionStrings;
    get allConnectionStrings(): cdktf.StringMap;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStringsList 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): DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStringsOutputReference;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabaseGsms {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseGsmsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseGsms): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseGsmsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseGsms): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseGsmsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabaseGsms | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabaseGsms | undefined);
    get computeCount(): number;
    get dataStorageSizeInGbs(): number;
    private _metadata;
    get metadata(): cdktf.StringMap;
    get name(): string;
    get status(): string;
    get supportingResourceId(): string;
    get timeCreated(): string;
    get timeSslCertificateExpires(): string;
    get timeUpdated(): string;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseGsmsList 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): DataOciGloballyDistributedDatabaseShardedDatabaseGsmsOutputReference;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabasePatchOperations {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabasePatchOperationsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabasePatchOperations): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabasePatchOperationsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabasePatchOperations): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabasePatchOperationsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabasePatchOperations | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabasePatchOperations | undefined);
    get operation(): string;
    get selection(): string;
    get value(): string;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabasePatchOperationsList 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): DataOciGloballyDistributedDatabaseShardedDatabasePatchOperationsOutputReference;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetails {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetailsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetails): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetailsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetails): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetailsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetails | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetails | undefined);
    get kmsKeyId(): string;
    get kmsKeyVersionId(): string;
    get vaultId(): string;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetailsList 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): DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetailsOutputReference;
}
export interface DataOciGloballyDistributedDatabaseShardedDatabaseShardDetails {
}
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsToTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseShardDetails): any;
export declare function dataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsToHclTerraform(struct?: DataOciGloballyDistributedDatabaseShardedDatabaseShardDetails): any;
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsOutputReference 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(): DataOciGloballyDistributedDatabaseShardedDatabaseShardDetails | undefined;
    set internalValue(value: DataOciGloballyDistributedDatabaseShardedDatabaseShardDetails | undefined);
    get adminPassword(): string;
    get cloudAutonomousVmClusterId(): string;
    get computeCount(): number;
    get containerDatabaseId(): string;
    get containerDatabaseParentId(): string;
    get dataStorageSizeInGbs(): number;
    private _encryptionKeyDetails;
    get encryptionKeyDetails(): DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsEncryptionKeyDetailsList;
    get isAutoScalingEnabled(): cdktf.IResolvable;
    private _metadata;
    get metadata(): cdktf.StringMap;
    get name(): string;
    get peerCloudAutonomousVmClusterId(): string;
    get shardGroup(): string;
    get shardSpace(): string;
    get status(): string;
    get supportingResourceId(): string;
    get timeCreated(): string;
    get timeSslCertificateExpires(): string;
    get timeUpdated(): string;
}
export declare class DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsList 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): DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/globally_distributed_database_sharded_database oci_globally_distributed_database_sharded_database}
*/
export declare class DataOciGloballyDistributedDatabaseShardedDatabase extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_globally_distributed_database_sharded_database";
    /**
    * Generates CDKTF code for importing a DataOciGloballyDistributedDatabaseShardedDatabase 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 DataOciGloballyDistributedDatabaseShardedDatabase to import
    * @param importFromId The id of the existing DataOciGloballyDistributedDatabaseShardedDatabase that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/globally_distributed_database_sharded_database#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciGloballyDistributedDatabaseShardedDatabase 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/oracle/oci/6.18.0/docs/data-sources/globally_distributed_database_sharded_database oci_globally_distributed_database_sharded_database} Data Source
    *
    * @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 DataOciGloballyDistributedDatabaseShardedDatabaseConfig
    */
    constructor(scope: Construct, id: string, config: DataOciGloballyDistributedDatabaseShardedDatabaseConfig);
    get caSignedCertificate(): string;
    private _catalogDetails;
    get catalogDetails(): DataOciGloballyDistributedDatabaseShardedDatabaseCatalogDetailsList;
    get characterSet(): string;
    get chunks(): number;
    get clusterCertificateCommonName(): string;
    get compartmentId(): string;
    get configureGsmsTrigger(): number;
    get configureGsmsTriggerIsLatestGsmImage(): cdktf.IResolvable;
    get configureGsmsTriggerOldGsmNames(): string[];
    get configureShardingTrigger(): number;
    private _connectionStrings;
    get connectionStrings(): DataOciGloballyDistributedDatabaseShardedDatabaseConnectionStringsList;
    get dbDeploymentType(): string;
    get dbVersion(): string;
    get dbWorkload(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get displayName(): string;
    get downloadGsmCertificateSigningRequestTrigger(): number;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get generateGsmCertificateSigningRequestTrigger(): number;
    get generateWalletPassword(): string;
    get generateWalletTrigger(): number;
    get fetchConnectionStringTrigger(): number;
    private _gsms;
    get gsms(): DataOciGloballyDistributedDatabaseShardedDatabaseGsmsList;
    get id(): string;
    get lifecycleState(): string;
    get lifecycleStateDetails(): string;
    get listenerPort(): number;
    get listenerPortTls(): number;
    private _metadata?;
    get metadata(): string;
    set metadata(value: string);
    resetMetadata(): void;
    get metadataInput(): string | undefined;
    get ncharacterSet(): string;
    get onsPortLocal(): number;
    get onsPortRemote(): number;
    private _patchOperations;
    get patchOperations(): DataOciGloballyDistributedDatabaseShardedDatabasePatchOperationsList;
    get prefix(): string;
    get privateEndpoint(): string;
    get replicationFactor(): number;
    get replicationMethod(): string;
    get replicationUnit(): number;
    private _shardDetails;
    get shardDetails(): DataOciGloballyDistributedDatabaseShardedDatabaseShardDetailsList;
    private _shardedDatabaseId?;
    get shardedDatabaseId(): string;
    set shardedDatabaseId(value: string);
    get shardedDatabaseIdInput(): string | undefined;
    get shardingMethod(): string;
    get startDatabaseTrigger(): number;
    get state(): string;
    get stopDatabaseTrigger(): number;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeUpdated(): string;
    get timeZone(): string;
    get uploadSignedCertificateAndGenerateWalletTrigger(): number;
    get validateNetworkTrigger(): number;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
