import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface MysqlMysqlDbSystemConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#admin_password MysqlMysqlDbSystem#admin_password}
    */
    readonly adminPassword?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#admin_username MysqlMysqlDbSystem#admin_username}
    */
    readonly adminUsername?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#availability_domain MysqlMysqlDbSystem#availability_domain}
    */
    readonly availabilityDomain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#compartment_id MysqlMysqlDbSystem#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#configuration_id MysqlMysqlDbSystem#configuration_id}
    */
    readonly configurationId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#crash_recovery MysqlMysqlDbSystem#crash_recovery}
    */
    readonly crashRecovery?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#data_storage_size_in_gb MysqlMysqlDbSystem#data_storage_size_in_gb}
    */
    readonly dataStorageSizeInGb?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#database_management MysqlMysqlDbSystem#database_management}
    */
    readonly databaseManagement?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#defined_tags MysqlMysqlDbSystem#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#description MysqlMysqlDbSystem#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#display_name MysqlMysqlDbSystem#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#fault_domain MysqlMysqlDbSystem#fault_domain}
    */
    readonly faultDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#freeform_tags MysqlMysqlDbSystem#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#hostname_label MysqlMysqlDbSystem#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#id MysqlMysqlDbSystem#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/mysql_mysql_db_system#ip_address MysqlMysqlDbSystem#ip_address}
    */
    readonly ipAddress?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#is_highly_available MysqlMysqlDbSystem#is_highly_available}
    */
    readonly isHighlyAvailable?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#mysql_version MysqlMysqlDbSystem#mysql_version}
    */
    readonly mysqlVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#port MysqlMysqlDbSystem#port}
    */
    readonly port?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#port_x MysqlMysqlDbSystem#port_x}
    */
    readonly portX?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#shape_name MysqlMysqlDbSystem#shape_name}
    */
    readonly shapeName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#shutdown_type MysqlMysqlDbSystem#shutdown_type}
    */
    readonly shutdownType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#state MysqlMysqlDbSystem#state}
    */
    readonly state?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#subnet_id MysqlMysqlDbSystem#subnet_id}
    */
    readonly subnetId: string;
    /**
    * backup_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#backup_policy MysqlMysqlDbSystem#backup_policy}
    */
    readonly backupPolicy?: MysqlMysqlDbSystemBackupPolicy;
    /**
    * customer_contacts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#customer_contacts MysqlMysqlDbSystem#customer_contacts}
    */
    readonly customerContacts?: MysqlMysqlDbSystemCustomerContacts[] | cdktf.IResolvable;
    /**
    * data_storage block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#data_storage MysqlMysqlDbSystem#data_storage}
    */
    readonly dataStorage?: MysqlMysqlDbSystemDataStorage;
    /**
    * deletion_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#deletion_policy MysqlMysqlDbSystem#deletion_policy}
    */
    readonly deletionPolicy?: MysqlMysqlDbSystemDeletionPolicy[] | cdktf.IResolvable;
    /**
    * maintenance block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#maintenance MysqlMysqlDbSystem#maintenance}
    */
    readonly maintenance?: MysqlMysqlDbSystemMaintenance;
    /**
    * secure_connections block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#secure_connections MysqlMysqlDbSystem#secure_connections}
    */
    readonly secureConnections?: MysqlMysqlDbSystemSecureConnections;
    /**
    * source block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#source MysqlMysqlDbSystem#source}
    */
    readonly source?: MysqlMysqlDbSystemSource;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#timeouts MysqlMysqlDbSystem#timeouts}
    */
    readonly timeouts?: MysqlMysqlDbSystemTimeouts;
}
export interface MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandling {
}
export declare function mysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandlingToTerraform(struct?: MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandling): any;
export declare function mysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandlingToHclTerraform(struct?: MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandling): any;
export declare class MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandlingOutputReference 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(): MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandling | undefined;
    set internalValue(value: MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandling | undefined);
    get lastConfiguredLogFilename(): string;
    get lastConfiguredLogOffset(): string;
    get policy(): string;
    get uuid(): string;
}
export declare class MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandlingList 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): MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandlingOutputReference;
}
export interface MysqlMysqlDbSystemChannelsSourceSslCaCertificate {
}
export declare function mysqlMysqlDbSystemChannelsSourceSslCaCertificateToTerraform(struct?: MysqlMysqlDbSystemChannelsSourceSslCaCertificate): any;
export declare function mysqlMysqlDbSystemChannelsSourceSslCaCertificateToHclTerraform(struct?: MysqlMysqlDbSystemChannelsSourceSslCaCertificate): any;
export declare class MysqlMysqlDbSystemChannelsSourceSslCaCertificateOutputReference 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(): MysqlMysqlDbSystemChannelsSourceSslCaCertificate | undefined;
    set internalValue(value: MysqlMysqlDbSystemChannelsSourceSslCaCertificate | undefined);
    get certificateType(): string;
    get contents(): string;
}
export declare class MysqlMysqlDbSystemChannelsSourceSslCaCertificateList 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): MysqlMysqlDbSystemChannelsSourceSslCaCertificateOutputReference;
}
export interface MysqlMysqlDbSystemChannelsSource {
}
export declare function mysqlMysqlDbSystemChannelsSourceToTerraform(struct?: MysqlMysqlDbSystemChannelsSource): any;
export declare function mysqlMysqlDbSystemChannelsSourceToHclTerraform(struct?: MysqlMysqlDbSystemChannelsSource): any;
export declare class MysqlMysqlDbSystemChannelsSourceOutputReference 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(): MysqlMysqlDbSystemChannelsSource | undefined;
    set internalValue(value: MysqlMysqlDbSystemChannelsSource | undefined);
    private _anonymousTransactionsHandling;
    get anonymousTransactionsHandling(): MysqlMysqlDbSystemChannelsSourceAnonymousTransactionsHandlingList;
    get hostname(): string;
    get port(): number;
    get sourceType(): string;
    private _sslCaCertificate;
    get sslCaCertificate(): MysqlMysqlDbSystemChannelsSourceSslCaCertificateList;
    get sslMode(): string;
    get username(): string;
}
export declare class MysqlMysqlDbSystemChannelsSourceList 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): MysqlMysqlDbSystemChannelsSourceOutputReference;
}
export interface MysqlMysqlDbSystemChannelsTargetFilters {
}
export declare function mysqlMysqlDbSystemChannelsTargetFiltersToTerraform(struct?: MysqlMysqlDbSystemChannelsTargetFilters): any;
export declare function mysqlMysqlDbSystemChannelsTargetFiltersToHclTerraform(struct?: MysqlMysqlDbSystemChannelsTargetFilters): any;
export declare class MysqlMysqlDbSystemChannelsTargetFiltersOutputReference 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(): MysqlMysqlDbSystemChannelsTargetFilters | undefined;
    set internalValue(value: MysqlMysqlDbSystemChannelsTargetFilters | undefined);
    get type(): string;
    get value(): string;
}
export declare class MysqlMysqlDbSystemChannelsTargetFiltersList 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): MysqlMysqlDbSystemChannelsTargetFiltersOutputReference;
}
export interface MysqlMysqlDbSystemChannelsTarget {
}
export declare function mysqlMysqlDbSystemChannelsTargetToTerraform(struct?: MysqlMysqlDbSystemChannelsTarget): any;
export declare function mysqlMysqlDbSystemChannelsTargetToHclTerraform(struct?: MysqlMysqlDbSystemChannelsTarget): any;
export declare class MysqlMysqlDbSystemChannelsTargetOutputReference 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(): MysqlMysqlDbSystemChannelsTarget | undefined;
    set internalValue(value: MysqlMysqlDbSystemChannelsTarget | undefined);
    get applierUsername(): string;
    get channelName(): string;
    get dbSystemId(): string;
    get delayInSeconds(): number;
    private _filters;
    get filters(): MysqlMysqlDbSystemChannelsTargetFiltersList;
    get tablesWithoutPrimaryKeyHandling(): string;
    get targetType(): string;
}
export declare class MysqlMysqlDbSystemChannelsTargetList 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): MysqlMysqlDbSystemChannelsTargetOutputReference;
}
export interface MysqlMysqlDbSystemChannels {
}
export declare function mysqlMysqlDbSystemChannelsToTerraform(struct?: MysqlMysqlDbSystemChannels): any;
export declare function mysqlMysqlDbSystemChannelsToHclTerraform(struct?: MysqlMysqlDbSystemChannels): any;
export declare class MysqlMysqlDbSystemChannelsOutputReference 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(): MysqlMysqlDbSystemChannels | undefined;
    set internalValue(value: MysqlMysqlDbSystemChannels | undefined);
    get compartmentId(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get displayName(): string;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get isEnabled(): cdktf.IResolvable;
    get lifecycleDetails(): string;
    private _source;
    get source(): MysqlMysqlDbSystemChannelsSourceList;
    get state(): string;
    private _target;
    get target(): MysqlMysqlDbSystemChannelsTargetList;
    get timeCreated(): string;
    get timeUpdated(): string;
}
export declare class MysqlMysqlDbSystemChannelsList 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): MysqlMysqlDbSystemChannelsOutputReference;
}
export interface MysqlMysqlDbSystemCurrentPlacement {
}
export declare function mysqlMysqlDbSystemCurrentPlacementToTerraform(struct?: MysqlMysqlDbSystemCurrentPlacement): any;
export declare function mysqlMysqlDbSystemCurrentPlacementToHclTerraform(struct?: MysqlMysqlDbSystemCurrentPlacement): any;
export declare class MysqlMysqlDbSystemCurrentPlacementOutputReference 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(): MysqlMysqlDbSystemCurrentPlacement | undefined;
    set internalValue(value: MysqlMysqlDbSystemCurrentPlacement | undefined);
    get availabilityDomain(): string;
    get faultDomain(): string;
}
export declare class MysqlMysqlDbSystemCurrentPlacementList 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): MysqlMysqlDbSystemCurrentPlacementOutputReference;
}
export interface MysqlMysqlDbSystemEndpoints {
}
export declare function mysqlMysqlDbSystemEndpointsToTerraform(struct?: MysqlMysqlDbSystemEndpoints): any;
export declare function mysqlMysqlDbSystemEndpointsToHclTerraform(struct?: MysqlMysqlDbSystemEndpoints): any;
export declare class MysqlMysqlDbSystemEndpointsOutputReference 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(): MysqlMysqlDbSystemEndpoints | undefined;
    set internalValue(value: MysqlMysqlDbSystemEndpoints | undefined);
    get hostname(): string;
    get ipAddress(): string;
    get modes(): string[];
    get port(): number;
    get portX(): number;
    get resourceId(): string;
    get resourceType(): string;
    get status(): string;
    get statusDetails(): string;
}
export declare class MysqlMysqlDbSystemEndpointsList 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): MysqlMysqlDbSystemEndpointsOutputReference;
}
export interface MysqlMysqlDbSystemHeatWaveCluster {
}
export declare function mysqlMysqlDbSystemHeatWaveClusterToTerraform(struct?: MysqlMysqlDbSystemHeatWaveCluster): any;
export declare function mysqlMysqlDbSystemHeatWaveClusterToHclTerraform(struct?: MysqlMysqlDbSystemHeatWaveCluster): any;
export declare class MysqlMysqlDbSystemHeatWaveClusterOutputReference 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(): MysqlMysqlDbSystemHeatWaveCluster | undefined;
    set internalValue(value: MysqlMysqlDbSystemHeatWaveCluster | undefined);
    get clusterSize(): number;
    get isLakehouseEnabled(): cdktf.IResolvable;
    get shapeName(): string;
    get state(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
}
export declare class MysqlMysqlDbSystemHeatWaveClusterList 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): MysqlMysqlDbSystemHeatWaveClusterOutputReference;
}
export interface MysqlMysqlDbSystemPointInTimeRecoveryDetails {
}
export declare function mysqlMysqlDbSystemPointInTimeRecoveryDetailsToTerraform(struct?: MysqlMysqlDbSystemPointInTimeRecoveryDetails): any;
export declare function mysqlMysqlDbSystemPointInTimeRecoveryDetailsToHclTerraform(struct?: MysqlMysqlDbSystemPointInTimeRecoveryDetails): any;
export declare class MysqlMysqlDbSystemPointInTimeRecoveryDetailsOutputReference 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(): MysqlMysqlDbSystemPointInTimeRecoveryDetails | undefined;
    set internalValue(value: MysqlMysqlDbSystemPointInTimeRecoveryDetails | undefined);
    get timeEarliestRecoveryPoint(): string;
    get timeLatestRecoveryPoint(): string;
}
export declare class MysqlMysqlDbSystemPointInTimeRecoveryDetailsList 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): MysqlMysqlDbSystemPointInTimeRecoveryDetailsOutputReference;
}
export interface MysqlMysqlDbSystemBackupPolicyPitrPolicy {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#is_enabled MysqlMysqlDbSystem#is_enabled}
    */
    readonly isEnabled?: boolean | cdktf.IResolvable;
}
export declare function mysqlMysqlDbSystemBackupPolicyPitrPolicyToTerraform(struct?: MysqlMysqlDbSystemBackupPolicyPitrPolicyOutputReference | MysqlMysqlDbSystemBackupPolicyPitrPolicy): any;
export declare function mysqlMysqlDbSystemBackupPolicyPitrPolicyToHclTerraform(struct?: MysqlMysqlDbSystemBackupPolicyPitrPolicyOutputReference | MysqlMysqlDbSystemBackupPolicyPitrPolicy): any;
export declare class MysqlMysqlDbSystemBackupPolicyPitrPolicyOutputReference 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(): MysqlMysqlDbSystemBackupPolicyPitrPolicy | undefined;
    set internalValue(value: MysqlMysqlDbSystemBackupPolicyPitrPolicy | undefined);
    private _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    resetIsEnabled(): void;
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface MysqlMysqlDbSystemBackupPolicy {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#defined_tags MysqlMysqlDbSystem#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#freeform_tags MysqlMysqlDbSystem#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#is_enabled MysqlMysqlDbSystem#is_enabled}
    */
    readonly isEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#retention_in_days MysqlMysqlDbSystem#retention_in_days}
    */
    readonly retentionInDays?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#window_start_time MysqlMysqlDbSystem#window_start_time}
    */
    readonly windowStartTime?: string;
    /**
    * pitr_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#pitr_policy MysqlMysqlDbSystem#pitr_policy}
    */
    readonly pitrPolicy?: MysqlMysqlDbSystemBackupPolicyPitrPolicy;
}
export declare function mysqlMysqlDbSystemBackupPolicyToTerraform(struct?: MysqlMysqlDbSystemBackupPolicyOutputReference | MysqlMysqlDbSystemBackupPolicy): any;
export declare function mysqlMysqlDbSystemBackupPolicyToHclTerraform(struct?: MysqlMysqlDbSystemBackupPolicyOutputReference | MysqlMysqlDbSystemBackupPolicy): any;
export declare class MysqlMysqlDbSystemBackupPolicyOutputReference 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(): MysqlMysqlDbSystemBackupPolicy | undefined;
    set internalValue(value: MysqlMysqlDbSystemBackupPolicy | 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 _isEnabled?;
    get isEnabled(): boolean | cdktf.IResolvable;
    set isEnabled(value: boolean | cdktf.IResolvable);
    resetIsEnabled(): void;
    get isEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _retentionInDays?;
    get retentionInDays(): number;
    set retentionInDays(value: number);
    resetRetentionInDays(): void;
    get retentionInDaysInput(): number | undefined;
    private _windowStartTime?;
    get windowStartTime(): string;
    set windowStartTime(value: string);
    resetWindowStartTime(): void;
    get windowStartTimeInput(): string | undefined;
    private _pitrPolicy;
    get pitrPolicy(): MysqlMysqlDbSystemBackupPolicyPitrPolicyOutputReference;
    putPitrPolicy(value: MysqlMysqlDbSystemBackupPolicyPitrPolicy): void;
    resetPitrPolicy(): void;
    get pitrPolicyInput(): MysqlMysqlDbSystemBackupPolicyPitrPolicy | undefined;
}
export interface MysqlMysqlDbSystemCustomerContacts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#email MysqlMysqlDbSystem#email}
    */
    readonly email: string;
}
export declare function mysqlMysqlDbSystemCustomerContactsToTerraform(struct?: MysqlMysqlDbSystemCustomerContacts | cdktf.IResolvable): any;
export declare function mysqlMysqlDbSystemCustomerContactsToHclTerraform(struct?: MysqlMysqlDbSystemCustomerContacts | cdktf.IResolvable): any;
export declare class MysqlMysqlDbSystemCustomerContactsOutputReference 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(): MysqlMysqlDbSystemCustomerContacts | cdktf.IResolvable | undefined;
    set internalValue(value: MysqlMysqlDbSystemCustomerContacts | cdktf.IResolvable | undefined);
    private _email?;
    get email(): string;
    set email(value: string);
    get emailInput(): string | undefined;
}
export declare class MysqlMysqlDbSystemCustomerContactsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: MysqlMysqlDbSystemCustomerContacts[] | 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): MysqlMysqlDbSystemCustomerContactsOutputReference;
}
export interface MysqlMysqlDbSystemDataStorage {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#is_auto_expand_storage_enabled MysqlMysqlDbSystem#is_auto_expand_storage_enabled}
    */
    readonly isAutoExpandStorageEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#max_storage_size_in_gbs MysqlMysqlDbSystem#max_storage_size_in_gbs}
    */
    readonly maxStorageSizeInGbs?: number;
}
export declare function mysqlMysqlDbSystemDataStorageToTerraform(struct?: MysqlMysqlDbSystemDataStorageOutputReference | MysqlMysqlDbSystemDataStorage): any;
export declare function mysqlMysqlDbSystemDataStorageToHclTerraform(struct?: MysqlMysqlDbSystemDataStorageOutputReference | MysqlMysqlDbSystemDataStorage): any;
export declare class MysqlMysqlDbSystemDataStorageOutputReference 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(): MysqlMysqlDbSystemDataStorage | undefined;
    set internalValue(value: MysqlMysqlDbSystemDataStorage | undefined);
    get allocatedStorageSizeInGbs(): number;
    get dataStorageSizeInGb(): number;
    get dataStorageSizeLimitInGbs(): number;
    private _isAutoExpandStorageEnabled?;
    get isAutoExpandStorageEnabled(): boolean | cdktf.IResolvable;
    set isAutoExpandStorageEnabled(value: boolean | cdktf.IResolvable);
    resetIsAutoExpandStorageEnabled(): void;
    get isAutoExpandStorageEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _maxStorageSizeInGbs?;
    get maxStorageSizeInGbs(): number;
    set maxStorageSizeInGbs(value: number);
    resetMaxStorageSizeInGbs(): void;
    get maxStorageSizeInGbsInput(): number | undefined;
}
export interface MysqlMysqlDbSystemDeletionPolicy {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#automatic_backup_retention MysqlMysqlDbSystem#automatic_backup_retention}
    */
    readonly automaticBackupRetention?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#final_backup MysqlMysqlDbSystem#final_backup}
    */
    readonly finalBackup?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#is_delete_protected MysqlMysqlDbSystem#is_delete_protected}
    */
    readonly isDeleteProtected?: boolean | cdktf.IResolvable;
}
export declare function mysqlMysqlDbSystemDeletionPolicyToTerraform(struct?: MysqlMysqlDbSystemDeletionPolicy | cdktf.IResolvable): any;
export declare function mysqlMysqlDbSystemDeletionPolicyToHclTerraform(struct?: MysqlMysqlDbSystemDeletionPolicy | cdktf.IResolvable): any;
export declare class MysqlMysqlDbSystemDeletionPolicyOutputReference 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(): MysqlMysqlDbSystemDeletionPolicy | cdktf.IResolvable | undefined;
    set internalValue(value: MysqlMysqlDbSystemDeletionPolicy | cdktf.IResolvable | undefined);
    private _automaticBackupRetention?;
    get automaticBackupRetention(): string;
    set automaticBackupRetention(value: string);
    resetAutomaticBackupRetention(): void;
    get automaticBackupRetentionInput(): string | undefined;
    private _finalBackup?;
    get finalBackup(): string;
    set finalBackup(value: string);
    resetFinalBackup(): void;
    get finalBackupInput(): string | undefined;
    private _isDeleteProtected?;
    get isDeleteProtected(): boolean | cdktf.IResolvable;
    set isDeleteProtected(value: boolean | cdktf.IResolvable);
    resetIsDeleteProtected(): void;
    get isDeleteProtectedInput(): boolean | cdktf.IResolvable | undefined;
}
export declare class MysqlMysqlDbSystemDeletionPolicyList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: MysqlMysqlDbSystemDeletionPolicy[] | 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): MysqlMysqlDbSystemDeletionPolicyOutputReference;
}
export interface MysqlMysqlDbSystemMaintenance {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#window_start_time MysqlMysqlDbSystem#window_start_time}
    */
    readonly windowStartTime: string;
}
export declare function mysqlMysqlDbSystemMaintenanceToTerraform(struct?: MysqlMysqlDbSystemMaintenanceOutputReference | MysqlMysqlDbSystemMaintenance): any;
export declare function mysqlMysqlDbSystemMaintenanceToHclTerraform(struct?: MysqlMysqlDbSystemMaintenanceOutputReference | MysqlMysqlDbSystemMaintenance): any;
export declare class MysqlMysqlDbSystemMaintenanceOutputReference 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(): MysqlMysqlDbSystemMaintenance | undefined;
    set internalValue(value: MysqlMysqlDbSystemMaintenance | undefined);
    private _windowStartTime?;
    get windowStartTime(): string;
    set windowStartTime(value: string);
    get windowStartTimeInput(): string | undefined;
}
export interface MysqlMysqlDbSystemSecureConnections {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#certificate_generation_type MysqlMysqlDbSystem#certificate_generation_type}
    */
    readonly certificateGenerationType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#certificate_id MysqlMysqlDbSystem#certificate_id}
    */
    readonly certificateId?: string;
}
export declare function mysqlMysqlDbSystemSecureConnectionsToTerraform(struct?: MysqlMysqlDbSystemSecureConnectionsOutputReference | MysqlMysqlDbSystemSecureConnections): any;
export declare function mysqlMysqlDbSystemSecureConnectionsToHclTerraform(struct?: MysqlMysqlDbSystemSecureConnectionsOutputReference | MysqlMysqlDbSystemSecureConnections): any;
export declare class MysqlMysqlDbSystemSecureConnectionsOutputReference 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(): MysqlMysqlDbSystemSecureConnections | undefined;
    set internalValue(value: MysqlMysqlDbSystemSecureConnections | undefined);
    private _certificateGenerationType?;
    get certificateGenerationType(): string;
    set certificateGenerationType(value: string);
    get certificateGenerationTypeInput(): string | undefined;
    private _certificateId?;
    get certificateId(): string;
    set certificateId(value: string);
    resetCertificateId(): void;
    get certificateIdInput(): string | undefined;
}
export interface MysqlMysqlDbSystemSource {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#backup_id MysqlMysqlDbSystem#backup_id}
    */
    readonly backupId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#db_system_id MysqlMysqlDbSystem#db_system_id}
    */
    readonly dbSystemId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#recovery_point MysqlMysqlDbSystem#recovery_point}
    */
    readonly recoveryPoint?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#source_type MysqlMysqlDbSystem#source_type}
    */
    readonly sourceType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#source_url MysqlMysqlDbSystem#source_url}
    */
    readonly sourceUrl?: string;
}
export declare function mysqlMysqlDbSystemSourceToTerraform(struct?: MysqlMysqlDbSystemSourceOutputReference | MysqlMysqlDbSystemSource): any;
export declare function mysqlMysqlDbSystemSourceToHclTerraform(struct?: MysqlMysqlDbSystemSourceOutputReference | MysqlMysqlDbSystemSource): any;
export declare class MysqlMysqlDbSystemSourceOutputReference 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(): MysqlMysqlDbSystemSource | undefined;
    set internalValue(value: MysqlMysqlDbSystemSource | undefined);
    private _backupId?;
    get backupId(): string;
    set backupId(value: string);
    resetBackupId(): void;
    get backupIdInput(): string | undefined;
    private _dbSystemId?;
    get dbSystemId(): string;
    set dbSystemId(value: string);
    resetDbSystemId(): void;
    get dbSystemIdInput(): string | undefined;
    private _recoveryPoint?;
    get recoveryPoint(): string;
    set recoveryPoint(value: string);
    resetRecoveryPoint(): void;
    get recoveryPointInput(): string | undefined;
    private _sourceType?;
    get sourceType(): string;
    set sourceType(value: string);
    get sourceTypeInput(): string | undefined;
    private _sourceUrl?;
    get sourceUrl(): string;
    set sourceUrl(value: string);
    resetSourceUrl(): void;
    get sourceUrlInput(): string | undefined;
}
export interface MysqlMysqlDbSystemTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#create MysqlMysqlDbSystem#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#delete MysqlMysqlDbSystem#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#update MysqlMysqlDbSystem#update}
    */
    readonly update?: string;
}
export declare function mysqlMysqlDbSystemTimeoutsToTerraform(struct?: MysqlMysqlDbSystemTimeouts | cdktf.IResolvable): any;
export declare function mysqlMysqlDbSystemTimeoutsToHclTerraform(struct?: MysqlMysqlDbSystemTimeouts | cdktf.IResolvable): any;
export declare class MysqlMysqlDbSystemTimeoutsOutputReference 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(): MysqlMysqlDbSystemTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: MysqlMysqlDbSystemTimeouts | 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/mysql_mysql_db_system oci_mysql_mysql_db_system}
*/
export declare class MysqlMysqlDbSystem extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_mysql_mysql_db_system";
    /**
    * Generates CDKTF code for importing a MysqlMysqlDbSystem 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 MysqlMysqlDbSystem to import
    * @param importFromId The id of the existing MysqlMysqlDbSystem that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/mysql_mysql_db_system#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the MysqlMysqlDbSystem 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/mysql_mysql_db_system oci_mysql_mysql_db_system} 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 MysqlMysqlDbSystemConfig
    */
    constructor(scope: Construct, id: string, config: MysqlMysqlDbSystemConfig);
    private _adminPassword?;
    get adminPassword(): string;
    set adminPassword(value: string);
    resetAdminPassword(): void;
    get adminPasswordInput(): string | undefined;
    private _adminUsername?;
    get adminUsername(): string;
    set adminUsername(value: string);
    resetAdminUsername(): void;
    get adminUsernameInput(): string | undefined;
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    get availabilityDomainInput(): string | undefined;
    private _channels;
    get channels(): MysqlMysqlDbSystemChannelsList;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _configurationId?;
    get configurationId(): string;
    set configurationId(value: string);
    resetConfigurationId(): void;
    get configurationIdInput(): string | undefined;
    private _crashRecovery?;
    get crashRecovery(): string;
    set crashRecovery(value: string);
    resetCrashRecovery(): void;
    get crashRecoveryInput(): string | undefined;
    private _currentPlacement;
    get currentPlacement(): MysqlMysqlDbSystemCurrentPlacementList;
    private _dataStorageSizeInGb?;
    get dataStorageSizeInGb(): number;
    set dataStorageSizeInGb(value: number);
    resetDataStorageSizeInGb(): void;
    get dataStorageSizeInGbInput(): number | undefined;
    private _databaseManagement?;
    get databaseManagement(): string;
    set databaseManagement(value: string);
    resetDatabaseManagement(): void;
    get databaseManagementInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _endpoints;
    get endpoints(): MysqlMysqlDbSystemEndpointsList;
    private _faultDomain?;
    get faultDomain(): string;
    set faultDomain(value: string);
    resetFaultDomain(): void;
    get faultDomainInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _heatWaveCluster;
    get heatWaveCluster(): MysqlMysqlDbSystemHeatWaveClusterList;
    private _hostnameLabel?;
    get hostnameLabel(): string;
    set hostnameLabel(value: string);
    resetHostnameLabel(): void;
    get hostnameLabelInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _ipAddress?;
    get ipAddress(): string;
    set ipAddress(value: string);
    resetIpAddress(): void;
    get ipAddressInput(): string | undefined;
    get isHeatWaveClusterAttached(): cdktf.IResolvable;
    private _isHighlyAvailable?;
    get isHighlyAvailable(): boolean | cdktf.IResolvable;
    set isHighlyAvailable(value: boolean | cdktf.IResolvable);
    resetIsHighlyAvailable(): void;
    get isHighlyAvailableInput(): boolean | cdktf.IResolvable | undefined;
    get lifecycleDetails(): string;
    private _mysqlVersion?;
    get mysqlVersion(): string;
    set mysqlVersion(value: string);
    resetMysqlVersion(): void;
    get mysqlVersionInput(): string | undefined;
    private _pointInTimeRecoveryDetails;
    get pointInTimeRecoveryDetails(): MysqlMysqlDbSystemPointInTimeRecoveryDetailsList;
    private _port?;
    get port(): number;
    set port(value: number);
    resetPort(): void;
    get portInput(): number | undefined;
    private _portX?;
    get portX(): number;
    set portX(value: number);
    resetPortX(): void;
    get portXInput(): number | undefined;
    private _shapeName?;
    get shapeName(): string;
    set shapeName(value: string);
    get shapeNameInput(): string | undefined;
    private _shutdownType?;
    get shutdownType(): string;
    set shutdownType(value: string);
    resetShutdownType(): void;
    get shutdownTypeInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _backupPolicy;
    get backupPolicy(): MysqlMysqlDbSystemBackupPolicyOutputReference;
    putBackupPolicy(value: MysqlMysqlDbSystemBackupPolicy): void;
    resetBackupPolicy(): void;
    get backupPolicyInput(): MysqlMysqlDbSystemBackupPolicy | undefined;
    private _customerContacts;
    get customerContacts(): MysqlMysqlDbSystemCustomerContactsList;
    putCustomerContacts(value: MysqlMysqlDbSystemCustomerContacts[] | cdktf.IResolvable): void;
    resetCustomerContacts(): void;
    get customerContactsInput(): cdktf.IResolvable | MysqlMysqlDbSystemCustomerContacts[] | undefined;
    private _dataStorage;
    get dataStorage(): MysqlMysqlDbSystemDataStorageOutputReference;
    putDataStorage(value: MysqlMysqlDbSystemDataStorage): void;
    resetDataStorage(): void;
    get dataStorageInput(): MysqlMysqlDbSystemDataStorage | undefined;
    private _deletionPolicy;
    get deletionPolicy(): MysqlMysqlDbSystemDeletionPolicyList;
    putDeletionPolicy(value: MysqlMysqlDbSystemDeletionPolicy[] | cdktf.IResolvable): void;
    resetDeletionPolicy(): void;
    get deletionPolicyInput(): cdktf.IResolvable | MysqlMysqlDbSystemDeletionPolicy[] | undefined;
    private _maintenance;
    get maintenance(): MysqlMysqlDbSystemMaintenanceOutputReference;
    putMaintenance(value: MysqlMysqlDbSystemMaintenance): void;
    resetMaintenance(): void;
    get maintenanceInput(): MysqlMysqlDbSystemMaintenance | undefined;
    private _secureConnections;
    get secureConnections(): MysqlMysqlDbSystemSecureConnectionsOutputReference;
    putSecureConnections(value: MysqlMysqlDbSystemSecureConnections): void;
    resetSecureConnections(): void;
    get secureConnectionsInput(): MysqlMysqlDbSystemSecureConnections | undefined;
    private _source;
    get source(): MysqlMysqlDbSystemSourceOutputReference;
    putSource(value: MysqlMysqlDbSystemSource): void;
    resetSource(): void;
    get sourceInput(): MysqlMysqlDbSystemSource | undefined;
    private _timeouts;
    get timeouts(): MysqlMysqlDbSystemTimeoutsOutputReference;
    putTimeouts(value: MysqlMysqlDbSystemTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | MysqlMysqlDbSystemTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
