import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DatabaseToolsDatabaseToolsConnectionConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#advanced_properties DatabaseToolsDatabaseToolsConnection#advanced_properties}
    */
    readonly advancedProperties?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#compartment_id DatabaseToolsDatabaseToolsConnection#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#connection_string DatabaseToolsDatabaseToolsConnection#connection_string}
    */
    readonly connectionString?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#defined_tags DatabaseToolsDatabaseToolsConnection#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_tools_database_tools_connection#display_name DatabaseToolsDatabaseToolsConnection#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#freeform_tags DatabaseToolsDatabaseToolsConnection#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_tools_database_tools_connection#id DatabaseToolsDatabaseToolsConnection#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_tools_database_tools_connection#private_endpoint_id DatabaseToolsDatabaseToolsConnection#private_endpoint_id}
    */
    readonly privateEndpointId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#runtime_support DatabaseToolsDatabaseToolsConnection#runtime_support}
    */
    readonly runtimeSupport?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#type DatabaseToolsDatabaseToolsConnection#type}
    */
    readonly type: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#url DatabaseToolsDatabaseToolsConnection#url}
    */
    readonly url?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#user_name DatabaseToolsDatabaseToolsConnection#user_name}
    */
    readonly userName: string;
    /**
    * key_stores block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#key_stores DatabaseToolsDatabaseToolsConnection#key_stores}
    */
    readonly keyStores?: DatabaseToolsDatabaseToolsConnectionKeyStores[] | cdktf.IResolvable;
    /**
    * locks block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#locks DatabaseToolsDatabaseToolsConnection#locks}
    */
    readonly locks?: DatabaseToolsDatabaseToolsConnectionLocks[] | cdktf.IResolvable;
    /**
    * proxy_client block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#proxy_client DatabaseToolsDatabaseToolsConnection#proxy_client}
    */
    readonly proxyClient?: DatabaseToolsDatabaseToolsConnectionProxyClient;
    /**
    * related_resource block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#related_resource DatabaseToolsDatabaseToolsConnection#related_resource}
    */
    readonly relatedResource?: DatabaseToolsDatabaseToolsConnectionRelatedResource;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#timeouts DatabaseToolsDatabaseToolsConnection#timeouts}
    */
    readonly timeouts?: DatabaseToolsDatabaseToolsConnectionTimeouts;
    /**
    * user_password block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#user_password DatabaseToolsDatabaseToolsConnection#user_password}
    */
    readonly userPassword: DatabaseToolsDatabaseToolsConnectionUserPassword;
}
export interface DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#secret_id DatabaseToolsDatabaseToolsConnection#secret_id}
    */
    readonly secretId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#value_type DatabaseToolsDatabaseToolsConnection#value_type}
    */
    readonly valueType: string;
}
export declare function databaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContentToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContentOutputReference | DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent): any;
export declare function databaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContentToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContentOutputReference | DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent): any;
export declare class DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContentOutputReference 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(): DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent | undefined);
    private _secretId?;
    get secretId(): string;
    set secretId(value: string);
    resetSecretId(): void;
    get secretIdInput(): string | undefined;
    private _valueType?;
    get valueType(): string;
    set valueType(value: string);
    get valueTypeInput(): string | undefined;
}
export interface DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#secret_id DatabaseToolsDatabaseToolsConnection#secret_id}
    */
    readonly secretId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#value_type DatabaseToolsDatabaseToolsConnection#value_type}
    */
    readonly valueType: string;
}
export declare function databaseToolsDatabaseToolsConnectionKeyStoresKeyStorePasswordToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePasswordOutputReference | DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword): any;
export declare function databaseToolsDatabaseToolsConnectionKeyStoresKeyStorePasswordToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePasswordOutputReference | DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword): any;
export declare class DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePasswordOutputReference 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(): DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword | undefined);
    private _secretId?;
    get secretId(): string;
    set secretId(value: string);
    resetSecretId(): void;
    get secretIdInput(): string | undefined;
    private _valueType?;
    get valueType(): string;
    set valueType(value: string);
    get valueTypeInput(): string | undefined;
}
export interface DatabaseToolsDatabaseToolsConnectionKeyStores {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#key_store_type DatabaseToolsDatabaseToolsConnection#key_store_type}
    */
    readonly keyStoreType?: string;
    /**
    * key_store_content block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#key_store_content DatabaseToolsDatabaseToolsConnection#key_store_content}
    */
    readonly keyStoreContent?: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent;
    /**
    * key_store_password block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#key_store_password DatabaseToolsDatabaseToolsConnection#key_store_password}
    */
    readonly keyStorePassword?: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword;
}
export declare function databaseToolsDatabaseToolsConnectionKeyStoresToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionKeyStores | cdktf.IResolvable): any;
export declare function databaseToolsDatabaseToolsConnectionKeyStoresToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionKeyStores | cdktf.IResolvable): any;
export declare class DatabaseToolsDatabaseToolsConnectionKeyStoresOutputReference 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(): DatabaseToolsDatabaseToolsConnectionKeyStores | cdktf.IResolvable | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionKeyStores | cdktf.IResolvable | undefined);
    private _keyStoreType?;
    get keyStoreType(): string;
    set keyStoreType(value: string);
    resetKeyStoreType(): void;
    get keyStoreTypeInput(): string | undefined;
    private _keyStoreContent;
    get keyStoreContent(): DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContentOutputReference;
    putKeyStoreContent(value: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent): void;
    resetKeyStoreContent(): void;
    get keyStoreContentInput(): DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStoreContent | undefined;
    private _keyStorePassword;
    get keyStorePassword(): DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePasswordOutputReference;
    putKeyStorePassword(value: DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword): void;
    resetKeyStorePassword(): void;
    get keyStorePasswordInput(): DatabaseToolsDatabaseToolsConnectionKeyStoresKeyStorePassword | undefined;
}
export declare class DatabaseToolsDatabaseToolsConnectionKeyStoresList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatabaseToolsDatabaseToolsConnectionKeyStores[] | 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): DatabaseToolsDatabaseToolsConnectionKeyStoresOutputReference;
}
export interface DatabaseToolsDatabaseToolsConnectionLocks {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#message DatabaseToolsDatabaseToolsConnection#message}
    */
    readonly message?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#related_resource_id DatabaseToolsDatabaseToolsConnection#related_resource_id}
    */
    readonly relatedResourceId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#time_created DatabaseToolsDatabaseToolsConnection#time_created}
    */
    readonly timeCreated?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#type DatabaseToolsDatabaseToolsConnection#type}
    */
    readonly type: string;
}
export declare function databaseToolsDatabaseToolsConnectionLocksToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionLocks | cdktf.IResolvable): any;
export declare function databaseToolsDatabaseToolsConnectionLocksToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionLocks | cdktf.IResolvable): any;
export declare class DatabaseToolsDatabaseToolsConnectionLocksOutputReference 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(): DatabaseToolsDatabaseToolsConnectionLocks | cdktf.IResolvable | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionLocks | cdktf.IResolvable | undefined);
    private _message?;
    get message(): string;
    set message(value: string);
    resetMessage(): void;
    get messageInput(): string | undefined;
    private _relatedResourceId?;
    get relatedResourceId(): string;
    set relatedResourceId(value: string);
    resetRelatedResourceId(): void;
    get relatedResourceIdInput(): string | undefined;
    private _timeCreated?;
    get timeCreated(): string;
    set timeCreated(value: string);
    resetTimeCreated(): void;
    get timeCreatedInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export declare class DatabaseToolsDatabaseToolsConnectionLocksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatabaseToolsDatabaseToolsConnectionLocks[] | 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): DatabaseToolsDatabaseToolsConnectionLocksOutputReference;
}
export interface DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#secret_id DatabaseToolsDatabaseToolsConnection#secret_id}
    */
    readonly secretId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#value_type DatabaseToolsDatabaseToolsConnection#value_type}
    */
    readonly valueType: string;
}
export declare function databaseToolsDatabaseToolsConnectionProxyClientUserPasswordToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionProxyClientUserPasswordOutputReference | DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword): any;
export declare function databaseToolsDatabaseToolsConnectionProxyClientUserPasswordToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionProxyClientUserPasswordOutputReference | DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword): any;
export declare class DatabaseToolsDatabaseToolsConnectionProxyClientUserPasswordOutputReference 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(): DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword | undefined);
    private _secretId?;
    get secretId(): string;
    set secretId(value: string);
    get secretIdInput(): string | undefined;
    private _valueType?;
    get valueType(): string;
    set valueType(value: string);
    get valueTypeInput(): string | undefined;
}
export interface DatabaseToolsDatabaseToolsConnectionProxyClient {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#proxy_authentication_type DatabaseToolsDatabaseToolsConnection#proxy_authentication_type}
    */
    readonly proxyAuthenticationType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#roles DatabaseToolsDatabaseToolsConnection#roles}
    */
    readonly roles?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#user_name DatabaseToolsDatabaseToolsConnection#user_name}
    */
    readonly userName?: string;
    /**
    * user_password block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#user_password DatabaseToolsDatabaseToolsConnection#user_password}
    */
    readonly userPassword?: DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword;
}
export declare function databaseToolsDatabaseToolsConnectionProxyClientToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionProxyClientOutputReference | DatabaseToolsDatabaseToolsConnectionProxyClient): any;
export declare function databaseToolsDatabaseToolsConnectionProxyClientToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionProxyClientOutputReference | DatabaseToolsDatabaseToolsConnectionProxyClient): any;
export declare class DatabaseToolsDatabaseToolsConnectionProxyClientOutputReference 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(): DatabaseToolsDatabaseToolsConnectionProxyClient | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionProxyClient | undefined);
    private _proxyAuthenticationType?;
    get proxyAuthenticationType(): string;
    set proxyAuthenticationType(value: string);
    get proxyAuthenticationTypeInput(): string | undefined;
    private _roles?;
    get roles(): string[];
    set roles(value: string[]);
    resetRoles(): void;
    get rolesInput(): string[] | undefined;
    private _userName?;
    get userName(): string;
    set userName(value: string);
    resetUserName(): void;
    get userNameInput(): string | undefined;
    private _userPassword;
    get userPassword(): DatabaseToolsDatabaseToolsConnectionProxyClientUserPasswordOutputReference;
    putUserPassword(value: DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword): void;
    resetUserPassword(): void;
    get userPasswordInput(): DatabaseToolsDatabaseToolsConnectionProxyClientUserPassword | undefined;
}
export interface DatabaseToolsDatabaseToolsConnectionRelatedResource {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#entity_type DatabaseToolsDatabaseToolsConnection#entity_type}
    */
    readonly entityType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#identifier DatabaseToolsDatabaseToolsConnection#identifier}
    */
    readonly identifier?: string;
}
export declare function databaseToolsDatabaseToolsConnectionRelatedResourceToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionRelatedResourceOutputReference | DatabaseToolsDatabaseToolsConnectionRelatedResource): any;
export declare function databaseToolsDatabaseToolsConnectionRelatedResourceToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionRelatedResourceOutputReference | DatabaseToolsDatabaseToolsConnectionRelatedResource): any;
export declare class DatabaseToolsDatabaseToolsConnectionRelatedResourceOutputReference 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(): DatabaseToolsDatabaseToolsConnectionRelatedResource | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionRelatedResource | undefined);
    private _entityType?;
    get entityType(): string;
    set entityType(value: string);
    resetEntityType(): void;
    get entityTypeInput(): string | undefined;
    private _identifier?;
    get identifier(): string;
    set identifier(value: string);
    resetIdentifier(): void;
    get identifierInput(): string | undefined;
}
export interface DatabaseToolsDatabaseToolsConnectionTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#create DatabaseToolsDatabaseToolsConnection#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#delete DatabaseToolsDatabaseToolsConnection#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#update DatabaseToolsDatabaseToolsConnection#update}
    */
    readonly update?: string;
}
export declare function databaseToolsDatabaseToolsConnectionTimeoutsToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionTimeouts | cdktf.IResolvable): any;
export declare function databaseToolsDatabaseToolsConnectionTimeoutsToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionTimeouts | cdktf.IResolvable): any;
export declare class DatabaseToolsDatabaseToolsConnectionTimeoutsOutputReference 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(): DatabaseToolsDatabaseToolsConnectionTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionTimeouts | 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;
}
export interface DatabaseToolsDatabaseToolsConnectionUserPassword {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#secret_id DatabaseToolsDatabaseToolsConnection#secret_id}
    */
    readonly secretId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#value_type DatabaseToolsDatabaseToolsConnection#value_type}
    */
    readonly valueType: string;
}
export declare function databaseToolsDatabaseToolsConnectionUserPasswordToTerraform(struct?: DatabaseToolsDatabaseToolsConnectionUserPasswordOutputReference | DatabaseToolsDatabaseToolsConnectionUserPassword): any;
export declare function databaseToolsDatabaseToolsConnectionUserPasswordToHclTerraform(struct?: DatabaseToolsDatabaseToolsConnectionUserPasswordOutputReference | DatabaseToolsDatabaseToolsConnectionUserPassword): any;
export declare class DatabaseToolsDatabaseToolsConnectionUserPasswordOutputReference 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(): DatabaseToolsDatabaseToolsConnectionUserPassword | undefined;
    set internalValue(value: DatabaseToolsDatabaseToolsConnectionUserPassword | undefined);
    private _secretId?;
    get secretId(): string;
    set secretId(value: string);
    get secretIdInput(): string | undefined;
    private _valueType?;
    get valueType(): string;
    set valueType(value: string);
    get valueTypeInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection oci_database_tools_database_tools_connection}
*/
export declare class DatabaseToolsDatabaseToolsConnection extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_database_tools_database_tools_connection";
    /**
    * Generates CDKTF code for importing a DatabaseToolsDatabaseToolsConnection 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 DatabaseToolsDatabaseToolsConnection to import
    * @param importFromId The id of the existing DatabaseToolsDatabaseToolsConnection that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/database_tools_database_tools_connection#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DatabaseToolsDatabaseToolsConnection 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_tools_database_tools_connection oci_database_tools_database_tools_connection} 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 DatabaseToolsDatabaseToolsConnectionConfig
    */
    constructor(scope: Construct, id: string, config: DatabaseToolsDatabaseToolsConnectionConfig);
    private _advancedProperties?;
    get advancedProperties(): {
        [key: string]: string;
    };
    set advancedProperties(value: {
        [key: string]: string;
    });
    resetAdvancedProperties(): void;
    get advancedPropertiesInput(): {
        [key: string]: string;
    } | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _connectionString?;
    get connectionString(): string;
    set connectionString(value: string);
    resetConnectionString(): void;
    get connectionStringInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get lifecycleDetails(): string;
    private _privateEndpointId?;
    get privateEndpointId(): string;
    set privateEndpointId(value: string);
    resetPrivateEndpointId(): void;
    get privateEndpointIdInput(): string | undefined;
    private _runtimeSupport?;
    get runtimeSupport(): string;
    set runtimeSupport(value: string);
    resetRuntimeSupport(): void;
    get runtimeSupportInput(): string | undefined;
    get state(): string;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _url?;
    get url(): string;
    set url(value: string);
    resetUrl(): void;
    get urlInput(): string | undefined;
    private _userName?;
    get userName(): string;
    set userName(value: string);
    get userNameInput(): string | undefined;
    private _keyStores;
    get keyStores(): DatabaseToolsDatabaseToolsConnectionKeyStoresList;
    putKeyStores(value: DatabaseToolsDatabaseToolsConnectionKeyStores[] | cdktf.IResolvable): void;
    resetKeyStores(): void;
    get keyStoresInput(): cdktf.IResolvable | DatabaseToolsDatabaseToolsConnectionKeyStores[] | undefined;
    private _locks;
    get locks(): DatabaseToolsDatabaseToolsConnectionLocksList;
    putLocks(value: DatabaseToolsDatabaseToolsConnectionLocks[] | cdktf.IResolvable): void;
    resetLocks(): void;
    get locksInput(): cdktf.IResolvable | DatabaseToolsDatabaseToolsConnectionLocks[] | undefined;
    private _proxyClient;
    get proxyClient(): DatabaseToolsDatabaseToolsConnectionProxyClientOutputReference;
    putProxyClient(value: DatabaseToolsDatabaseToolsConnectionProxyClient): void;
    resetProxyClient(): void;
    get proxyClientInput(): DatabaseToolsDatabaseToolsConnectionProxyClient | undefined;
    private _relatedResource;
    get relatedResource(): DatabaseToolsDatabaseToolsConnectionRelatedResourceOutputReference;
    putRelatedResource(value: DatabaseToolsDatabaseToolsConnectionRelatedResource): void;
    resetRelatedResource(): void;
    get relatedResourceInput(): DatabaseToolsDatabaseToolsConnectionRelatedResource | undefined;
    private _timeouts;
    get timeouts(): DatabaseToolsDatabaseToolsConnectionTimeoutsOutputReference;
    putTimeouts(value: DatabaseToolsDatabaseToolsConnectionTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DatabaseToolsDatabaseToolsConnectionTimeouts | undefined;
    private _userPassword;
    get userPassword(): DatabaseToolsDatabaseToolsConnectionUserPasswordOutputReference;
    putUserPassword(value: DatabaseToolsDatabaseToolsConnectionUserPassword): void;
    get userPasswordInput(): DatabaseToolsDatabaseToolsConnectionUserPassword | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
