import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DatabaseDatabaseConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#db_home_id DatabaseDatabase#db_home_id}
    */
    readonly dbHomeId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#db_version DatabaseDatabase#db_version}
    */
    readonly dbVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#id DatabaseDatabase#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;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#key_store_id DatabaseDatabase#key_store_id}
    */
    readonly keyStoreId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#kms_key_id DatabaseDatabase#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#kms_key_migration DatabaseDatabase#kms_key_migration}
    */
    readonly kmsKeyMigration?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#kms_key_rotation DatabaseDatabase#kms_key_rotation}
    */
    readonly kmsKeyRotation?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#kms_key_version_id DatabaseDatabase#kms_key_version_id}
    */
    readonly kmsKeyVersionId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#source DatabaseDatabase#source}
    */
    readonly source: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#vault_id DatabaseDatabase#vault_id}
    */
    readonly vaultId?: string;
    /**
    * database block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#database DatabaseDatabase#database}
    */
    readonly database: DatabaseDatabaseDatabase;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#timeouts DatabaseDatabase#timeouts}
    */
    readonly timeouts?: DatabaseDatabaseTimeouts;
}
export interface DatabaseDatabaseConnectionStrings {
}
export declare function databaseDatabaseConnectionStringsToTerraform(struct?: DatabaseDatabaseConnectionStrings): any;
export declare function databaseDatabaseConnectionStringsToHclTerraform(struct?: DatabaseDatabaseConnectionStrings): any;
export declare class DatabaseDatabaseConnectionStringsOutputReference 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(): DatabaseDatabaseConnectionStrings | undefined;
    set internalValue(value: DatabaseDatabaseConnectionStrings | undefined);
    private _allConnectionStrings;
    get allConnectionStrings(): cdktf.StringMap;
    get cdbDefault(): string;
    get cdbIpDefault(): string;
}
export declare class DatabaseDatabaseConnectionStringsList 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): DatabaseDatabaseConnectionStringsOutputReference;
}
export interface DatabaseDatabaseDatabaseManagementConfig {
}
export declare function databaseDatabaseDatabaseManagementConfigToTerraform(struct?: DatabaseDatabaseDatabaseManagementConfig): any;
export declare function databaseDatabaseDatabaseManagementConfigToHclTerraform(struct?: DatabaseDatabaseDatabaseManagementConfig): any;
export declare class DatabaseDatabaseDatabaseManagementConfigOutputReference 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(): DatabaseDatabaseDatabaseManagementConfig | undefined;
    set internalValue(value: DatabaseDatabaseDatabaseManagementConfig | undefined);
    get managementStatus(): string;
    get managementType(): string;
}
export declare class DatabaseDatabaseDatabaseManagementConfigList 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): DatabaseDatabaseDatabaseManagementConfigOutputReference;
}
export interface DatabaseDatabaseDbBackupConfigBackupDestinationDetails {
}
export declare function databaseDatabaseDbBackupConfigBackupDestinationDetailsToTerraform(struct?: DatabaseDatabaseDbBackupConfigBackupDestinationDetails): any;
export declare function databaseDatabaseDbBackupConfigBackupDestinationDetailsToHclTerraform(struct?: DatabaseDatabaseDbBackupConfigBackupDestinationDetails): any;
export declare class DatabaseDatabaseDbBackupConfigBackupDestinationDetailsOutputReference 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(): DatabaseDatabaseDbBackupConfigBackupDestinationDetails | undefined;
    set internalValue(value: DatabaseDatabaseDbBackupConfigBackupDestinationDetails | undefined);
    get dbrsPolicyId(): string;
    get id(): string;
    get type(): string;
    get vpcUser(): string;
}
export declare class DatabaseDatabaseDbBackupConfigBackupDestinationDetailsList 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): DatabaseDatabaseDbBackupConfigBackupDestinationDetailsOutputReference;
}
export interface DatabaseDatabaseDbBackupConfig {
}
export declare function databaseDatabaseDbBackupConfigToTerraform(struct?: DatabaseDatabaseDbBackupConfig): any;
export declare function databaseDatabaseDbBackupConfigToHclTerraform(struct?: DatabaseDatabaseDbBackupConfig): any;
export declare class DatabaseDatabaseDbBackupConfigOutputReference 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(): DatabaseDatabaseDbBackupConfig | undefined;
    set internalValue(value: DatabaseDatabaseDbBackupConfig | undefined);
    get autoBackupEnabled(): cdktf.IResolvable;
    get autoBackupWindow(): string;
    get autoFullBackupDay(): string;
    get autoFullBackupWindow(): string;
    get backupDeletionPolicy(): string;
    private _backupDestinationDetails;
    get backupDestinationDetails(): DatabaseDatabaseDbBackupConfigBackupDestinationDetailsList;
    get recoveryWindowInDays(): number;
    get runImmediateFullBackup(): cdktf.IResolvable;
}
export declare class DatabaseDatabaseDbBackupConfigList 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): DatabaseDatabaseDbBackupConfigOutputReference;
}
export interface DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#dbrs_policy_id DatabaseDatabase#dbrs_policy_id}
    */
    readonly dbrsPolicyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#id DatabaseDatabase#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;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#type DatabaseDatabase#type}
    */
    readonly type?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#vpc_user DatabaseDatabase#vpc_user}
    */
    readonly vpcUser?: string;
}
export declare function databaseDatabaseDatabaseDbBackupConfigBackupDestinationDetailsToTerraform(struct?: DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails | cdktf.IResolvable): any;
export declare function databaseDatabaseDatabaseDbBackupConfigBackupDestinationDetailsToHclTerraform(struct?: DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails | cdktf.IResolvable): any;
export declare class DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetailsOutputReference 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(): DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails | cdktf.IResolvable | undefined;
    set internalValue(value: DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails | cdktf.IResolvable | undefined);
    private _dbrsPolicyId?;
    get dbrsPolicyId(): string;
    set dbrsPolicyId(value: string);
    resetDbrsPolicyId(): void;
    get dbrsPolicyIdInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
    private _vpcUser?;
    get vpcUser(): string;
    set vpcUser(value: string);
    resetVpcUser(): void;
    get vpcUserInput(): string | undefined;
}
export declare class DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails[] | 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): DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetailsOutputReference;
}
export interface DatabaseDatabaseDatabaseDbBackupConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#auto_backup_enabled DatabaseDatabase#auto_backup_enabled}
    */
    readonly autoBackupEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#auto_backup_window DatabaseDatabase#auto_backup_window}
    */
    readonly autoBackupWindow?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#auto_full_backup_day DatabaseDatabase#auto_full_backup_day}
    */
    readonly autoFullBackupDay?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#auto_full_backup_window DatabaseDatabase#auto_full_backup_window}
    */
    readonly autoFullBackupWindow?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#backup_deletion_policy DatabaseDatabase#backup_deletion_policy}
    */
    readonly backupDeletionPolicy?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#recovery_window_in_days DatabaseDatabase#recovery_window_in_days}
    */
    readonly recoveryWindowInDays?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#run_immediate_full_backup DatabaseDatabase#run_immediate_full_backup}
    */
    readonly runImmediateFullBackup?: boolean | cdktf.IResolvable;
    /**
    * backup_destination_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#backup_destination_details DatabaseDatabase#backup_destination_details}
    */
    readonly backupDestinationDetails?: DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails[] | cdktf.IResolvable;
}
export declare function databaseDatabaseDatabaseDbBackupConfigToTerraform(struct?: DatabaseDatabaseDatabaseDbBackupConfigOutputReference | DatabaseDatabaseDatabaseDbBackupConfig): any;
export declare function databaseDatabaseDatabaseDbBackupConfigToHclTerraform(struct?: DatabaseDatabaseDatabaseDbBackupConfigOutputReference | DatabaseDatabaseDatabaseDbBackupConfig): any;
export declare class DatabaseDatabaseDatabaseDbBackupConfigOutputReference 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(): DatabaseDatabaseDatabaseDbBackupConfig | undefined;
    set internalValue(value: DatabaseDatabaseDatabaseDbBackupConfig | undefined);
    private _autoBackupEnabled?;
    get autoBackupEnabled(): boolean | cdktf.IResolvable;
    set autoBackupEnabled(value: boolean | cdktf.IResolvable);
    resetAutoBackupEnabled(): void;
    get autoBackupEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _autoBackupWindow?;
    get autoBackupWindow(): string;
    set autoBackupWindow(value: string);
    resetAutoBackupWindow(): void;
    get autoBackupWindowInput(): string | undefined;
    private _autoFullBackupDay?;
    get autoFullBackupDay(): string;
    set autoFullBackupDay(value: string);
    resetAutoFullBackupDay(): void;
    get autoFullBackupDayInput(): string | undefined;
    private _autoFullBackupWindow?;
    get autoFullBackupWindow(): string;
    set autoFullBackupWindow(value: string);
    resetAutoFullBackupWindow(): void;
    get autoFullBackupWindowInput(): string | undefined;
    private _backupDeletionPolicy?;
    get backupDeletionPolicy(): string;
    set backupDeletionPolicy(value: string);
    resetBackupDeletionPolicy(): void;
    get backupDeletionPolicyInput(): string | undefined;
    private _recoveryWindowInDays?;
    get recoveryWindowInDays(): number;
    set recoveryWindowInDays(value: number);
    resetRecoveryWindowInDays(): void;
    get recoveryWindowInDaysInput(): number | undefined;
    private _runImmediateFullBackup?;
    get runImmediateFullBackup(): boolean | cdktf.IResolvable;
    set runImmediateFullBackup(value: boolean | cdktf.IResolvable);
    resetRunImmediateFullBackup(): void;
    get runImmediateFullBackupInput(): boolean | cdktf.IResolvable | undefined;
    private _backupDestinationDetails;
    get backupDestinationDetails(): DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetailsList;
    putBackupDestinationDetails(value: DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails[] | cdktf.IResolvable): void;
    resetBackupDestinationDetails(): void;
    get backupDestinationDetailsInput(): cdktf.IResolvable | DatabaseDatabaseDatabaseDbBackupConfigBackupDestinationDetails[] | undefined;
}
export interface DatabaseDatabaseDatabase {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#admin_password DatabaseDatabase#admin_password}
    */
    readonly adminPassword: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#backup_id DatabaseDatabase#backup_id}
    */
    readonly backupId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#backup_tde_password DatabaseDatabase#backup_tde_password}
    */
    readonly backupTdePassword?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#character_set DatabaseDatabase#character_set}
    */
    readonly characterSet?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#database_software_image_id DatabaseDatabase#database_software_image_id}
    */
    readonly databaseSoftwareImageId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#db_name DatabaseDatabase#db_name}
    */
    readonly dbName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#db_unique_name DatabaseDatabase#db_unique_name}
    */
    readonly dbUniqueName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#db_workload DatabaseDatabase#db_workload}
    */
    readonly dbWorkload?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#defined_tags DatabaseDatabase#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#freeform_tags DatabaseDatabase#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#kms_key_id DatabaseDatabase#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#kms_key_version_id DatabaseDatabase#kms_key_version_id}
    */
    readonly kmsKeyVersionId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#ncharacter_set DatabaseDatabase#ncharacter_set}
    */
    readonly ncharacterSet?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#pdb_name DatabaseDatabase#pdb_name}
    */
    readonly pdbName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#pluggable_databases DatabaseDatabase#pluggable_databases}
    */
    readonly pluggableDatabases?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#sid_prefix DatabaseDatabase#sid_prefix}
    */
    readonly sidPrefix?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#tde_wallet_password DatabaseDatabase#tde_wallet_password}
    */
    readonly tdeWalletPassword?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#vault_id DatabaseDatabase#vault_id}
    */
    readonly vaultId?: string;
    /**
    * db_backup_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#db_backup_config DatabaseDatabase#db_backup_config}
    */
    readonly dbBackupConfig?: DatabaseDatabaseDatabaseDbBackupConfig;
}
export declare function databaseDatabaseDatabaseToTerraform(struct?: DatabaseDatabaseDatabaseOutputReference | DatabaseDatabaseDatabase): any;
export declare function databaseDatabaseDatabaseToHclTerraform(struct?: DatabaseDatabaseDatabaseOutputReference | DatabaseDatabaseDatabase): any;
export declare class DatabaseDatabaseDatabaseOutputReference 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(): DatabaseDatabaseDatabase | undefined;
    set internalValue(value: DatabaseDatabaseDatabase | undefined);
    private _adminPassword?;
    get adminPassword(): string;
    set adminPassword(value: string);
    get adminPasswordInput(): string | undefined;
    private _backupId?;
    get backupId(): string;
    set backupId(value: string);
    resetBackupId(): void;
    get backupIdInput(): string | undefined;
    private _backupTdePassword?;
    get backupTdePassword(): string;
    set backupTdePassword(value: string);
    resetBackupTdePassword(): void;
    get backupTdePasswordInput(): string | undefined;
    private _characterSet?;
    get characterSet(): string;
    set characterSet(value: string);
    resetCharacterSet(): void;
    get characterSetInput(): string | undefined;
    private _databaseSoftwareImageId?;
    get databaseSoftwareImageId(): string;
    set databaseSoftwareImageId(value: string);
    resetDatabaseSoftwareImageId(): void;
    get databaseSoftwareImageIdInput(): string | undefined;
    private _dbName?;
    get dbName(): string;
    set dbName(value: string);
    get dbNameInput(): string | undefined;
    private _dbUniqueName?;
    get dbUniqueName(): string;
    set dbUniqueName(value: string);
    resetDbUniqueName(): void;
    get dbUniqueNameInput(): string | undefined;
    private _dbWorkload?;
    get dbWorkload(): string;
    set dbWorkload(value: string);
    resetDbWorkload(): void;
    get dbWorkloadInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _kmsKeyVersionId?;
    get kmsKeyVersionId(): string;
    set kmsKeyVersionId(value: string);
    resetKmsKeyVersionId(): void;
    get kmsKeyVersionIdInput(): string | undefined;
    private _ncharacterSet?;
    get ncharacterSet(): string;
    set ncharacterSet(value: string);
    resetNcharacterSet(): void;
    get ncharacterSetInput(): string | undefined;
    private _pdbName?;
    get pdbName(): string;
    set pdbName(value: string);
    resetPdbName(): void;
    get pdbNameInput(): string | undefined;
    private _pluggableDatabases?;
    get pluggableDatabases(): string[];
    set pluggableDatabases(value: string[]);
    resetPluggableDatabases(): void;
    get pluggableDatabasesInput(): string[] | undefined;
    private _sidPrefix?;
    get sidPrefix(): string;
    set sidPrefix(value: string);
    resetSidPrefix(): void;
    get sidPrefixInput(): string | undefined;
    private _tdeWalletPassword?;
    get tdeWalletPassword(): string;
    set tdeWalletPassword(value: string);
    resetTdeWalletPassword(): void;
    get tdeWalletPasswordInput(): string | undefined;
    private _vaultId?;
    get vaultId(): string;
    set vaultId(value: string);
    resetVaultId(): void;
    get vaultIdInput(): string | undefined;
    private _dbBackupConfig;
    get dbBackupConfig(): DatabaseDatabaseDatabaseDbBackupConfigOutputReference;
    putDbBackupConfig(value: DatabaseDatabaseDatabaseDbBackupConfig): void;
    resetDbBackupConfig(): void;
    get dbBackupConfigInput(): DatabaseDatabaseDatabaseDbBackupConfig | undefined;
}
export interface DatabaseDatabaseTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#create DatabaseDatabase#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#delete DatabaseDatabase#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#update DatabaseDatabase#update}
    */
    readonly update?: string;
}
export declare function databaseDatabaseTimeoutsToTerraform(struct?: DatabaseDatabaseTimeouts | cdktf.IResolvable): any;
export declare function databaseDatabaseTimeoutsToHclTerraform(struct?: DatabaseDatabaseTimeouts | cdktf.IResolvable): any;
export declare class DatabaseDatabaseTimeoutsOutputReference 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(): DatabaseDatabaseTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DatabaseDatabaseTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database oci_database_database}
*/
export declare class DatabaseDatabase extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_database_database";
    /**
    * Generates CDKTF code for importing a DatabaseDatabase 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 DatabaseDatabase to import
    * @param importFromId The id of the existing DatabaseDatabase that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_database#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DatabaseDatabase 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/resources/database_database oci_database_database} 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 DatabaseDatabaseConfig
    */
    constructor(scope: Construct, id: string, config: DatabaseDatabaseConfig);
    get characterSet(): string;
    get compartmentId(): string;
    private _connectionStrings;
    get connectionStrings(): DatabaseDatabaseConnectionStringsList;
    private _databaseManagementConfig;
    get databaseManagementConfig(): DatabaseDatabaseDatabaseManagementConfigList;
    get databaseSoftwareImageId(): string;
    private _dbBackupConfig;
    get dbBackupConfig(): DatabaseDatabaseDbBackupConfigList;
    private _dbHomeId?;
    get dbHomeId(): string;
    set dbHomeId(value: string);
    get dbHomeIdInput(): string | undefined;
    get dbName(): string;
    get dbSystemId(): string;
    get dbUniqueName(): string;
    private _dbVersion?;
    get dbVersion(): string;
    set dbVersion(value: string);
    resetDbVersion(): void;
    get dbVersionInput(): string | undefined;
    get dbWorkload(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get isCdb(): cdktf.IResolvable;
    private _keyStoreId?;
    get keyStoreId(): string;
    set keyStoreId(value: string);
    resetKeyStoreId(): void;
    get keyStoreIdInput(): string | undefined;
    get keyStoreWalletName(): string;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _kmsKeyMigration?;
    get kmsKeyMigration(): boolean | cdktf.IResolvable;
    set kmsKeyMigration(value: boolean | cdktf.IResolvable);
    resetKmsKeyMigration(): void;
    get kmsKeyMigrationInput(): boolean | cdktf.IResolvable | undefined;
    private _kmsKeyRotation?;
    get kmsKeyRotation(): number;
    set kmsKeyRotation(value: number);
    resetKmsKeyRotation(): void;
    get kmsKeyRotationInput(): number | undefined;
    private _kmsKeyVersionId?;
    get kmsKeyVersionId(): string;
    set kmsKeyVersionId(value: string);
    resetKmsKeyVersionId(): void;
    get kmsKeyVersionIdInput(): string | undefined;
    get lastBackupDurationInSeconds(): number;
    get lastBackupTimestamp(): string;
    get lastFailedBackupTimestamp(): string;
    get lifecycleDetails(): string;
    get ncharacterSet(): string;
    get pdbName(): string;
    get sidPrefix(): string;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
    get sourceDatabasePointInTimeRecoveryTimestamp(): string;
    get state(): string;
    get timeCreated(): string;
    private _vaultId?;
    get vaultId(): string;
    set vaultId(value: string);
    resetVaultId(): void;
    get vaultIdInput(): string | undefined;
    get vmClusterId(): string;
    private _database;
    get database(): DatabaseDatabaseDatabaseOutputReference;
    putDatabase(value: DatabaseDatabaseDatabase): void;
    get databaseInput(): DatabaseDatabaseDatabase | undefined;
    private _timeouts;
    get timeouts(): DatabaseDatabaseTimeoutsOutputReference;
    putTimeouts(value: DatabaseDatabaseTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DatabaseDatabaseTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
