import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciPsqlDbSystemConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/psql_db_system#db_system_id DataOciPsqlDbSystem#db_system_id}
    */
    readonly dbSystemId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/psql_db_system#excluded_fields DataOciPsqlDbSystem#excluded_fields}
    */
    readonly excludedFields?: string;
}
export interface DataOciPsqlDbSystemCredentialsPasswordDetails {
}
export declare function dataOciPsqlDbSystemCredentialsPasswordDetailsToTerraform(struct?: DataOciPsqlDbSystemCredentialsPasswordDetails): any;
export declare function dataOciPsqlDbSystemCredentialsPasswordDetailsToHclTerraform(struct?: DataOciPsqlDbSystemCredentialsPasswordDetails): any;
export declare class DataOciPsqlDbSystemCredentialsPasswordDetailsOutputReference 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(): DataOciPsqlDbSystemCredentialsPasswordDetails | undefined;
    set internalValue(value: DataOciPsqlDbSystemCredentialsPasswordDetails | undefined);
    get password(): string;
    get passwordType(): string;
    get secretId(): string;
    get secretVersion(): string;
}
export declare class DataOciPsqlDbSystemCredentialsPasswordDetailsList 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): DataOciPsqlDbSystemCredentialsPasswordDetailsOutputReference;
}
export interface DataOciPsqlDbSystemCredentials {
}
export declare function dataOciPsqlDbSystemCredentialsToTerraform(struct?: DataOciPsqlDbSystemCredentials): any;
export declare function dataOciPsqlDbSystemCredentialsToHclTerraform(struct?: DataOciPsqlDbSystemCredentials): any;
export declare class DataOciPsqlDbSystemCredentialsOutputReference 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(): DataOciPsqlDbSystemCredentials | undefined;
    set internalValue(value: DataOciPsqlDbSystemCredentials | undefined);
    private _passwordDetails;
    get passwordDetails(): DataOciPsqlDbSystemCredentialsPasswordDetailsList;
    get username(): string;
}
export declare class DataOciPsqlDbSystemCredentialsList 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): DataOciPsqlDbSystemCredentialsOutputReference;
}
export interface DataOciPsqlDbSystemInstances {
}
export declare function dataOciPsqlDbSystemInstancesToTerraform(struct?: DataOciPsqlDbSystemInstances): any;
export declare function dataOciPsqlDbSystemInstancesToHclTerraform(struct?: DataOciPsqlDbSystemInstances): any;
export declare class DataOciPsqlDbSystemInstancesOutputReference 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(): DataOciPsqlDbSystemInstances | undefined;
    set internalValue(value: DataOciPsqlDbSystemInstances | undefined);
    get availabilityDomain(): string;
    get description(): string;
    get displayName(): string;
    get id(): string;
    get lifecycleDetails(): string;
    get state(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
}
export declare class DataOciPsqlDbSystemInstancesList 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): DataOciPsqlDbSystemInstancesOutputReference;
}
export interface DataOciPsqlDbSystemInstancesDetails {
}
export declare function dataOciPsqlDbSystemInstancesDetailsToTerraform(struct?: DataOciPsqlDbSystemInstancesDetails): any;
export declare function dataOciPsqlDbSystemInstancesDetailsToHclTerraform(struct?: DataOciPsqlDbSystemInstancesDetails): any;
export declare class DataOciPsqlDbSystemInstancesDetailsOutputReference 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(): DataOciPsqlDbSystemInstancesDetails | undefined;
    set internalValue(value: DataOciPsqlDbSystemInstancesDetails | undefined);
    get description(): string;
    get displayName(): string;
    get privateIp(): string;
}
export declare class DataOciPsqlDbSystemInstancesDetailsList 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): DataOciPsqlDbSystemInstancesDetailsOutputReference;
}
export interface DataOciPsqlDbSystemManagementPolicyBackupPolicy {
}
export declare function dataOciPsqlDbSystemManagementPolicyBackupPolicyToTerraform(struct?: DataOciPsqlDbSystemManagementPolicyBackupPolicy): any;
export declare function dataOciPsqlDbSystemManagementPolicyBackupPolicyToHclTerraform(struct?: DataOciPsqlDbSystemManagementPolicyBackupPolicy): any;
export declare class DataOciPsqlDbSystemManagementPolicyBackupPolicyOutputReference 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(): DataOciPsqlDbSystemManagementPolicyBackupPolicy | undefined;
    set internalValue(value: DataOciPsqlDbSystemManagementPolicyBackupPolicy | undefined);
    get backupStart(): string;
    get daysOfTheMonth(): number[];
    get daysOfTheWeek(): string[];
    get kind(): string;
    get retentionDays(): number;
}
export declare class DataOciPsqlDbSystemManagementPolicyBackupPolicyList 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): DataOciPsqlDbSystemManagementPolicyBackupPolicyOutputReference;
}
export interface DataOciPsqlDbSystemManagementPolicy {
}
export declare function dataOciPsqlDbSystemManagementPolicyToTerraform(struct?: DataOciPsqlDbSystemManagementPolicy): any;
export declare function dataOciPsqlDbSystemManagementPolicyToHclTerraform(struct?: DataOciPsqlDbSystemManagementPolicy): any;
export declare class DataOciPsqlDbSystemManagementPolicyOutputReference 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(): DataOciPsqlDbSystemManagementPolicy | undefined;
    set internalValue(value: DataOciPsqlDbSystemManagementPolicy | undefined);
    private _backupPolicy;
    get backupPolicy(): DataOciPsqlDbSystemManagementPolicyBackupPolicyList;
    get maintenanceWindowStart(): string;
}
export declare class DataOciPsqlDbSystemManagementPolicyList 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): DataOciPsqlDbSystemManagementPolicyOutputReference;
}
export interface DataOciPsqlDbSystemNetworkDetails {
}
export declare function dataOciPsqlDbSystemNetworkDetailsToTerraform(struct?: DataOciPsqlDbSystemNetworkDetails): any;
export declare function dataOciPsqlDbSystemNetworkDetailsToHclTerraform(struct?: DataOciPsqlDbSystemNetworkDetails): any;
export declare class DataOciPsqlDbSystemNetworkDetailsOutputReference 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(): DataOciPsqlDbSystemNetworkDetails | undefined;
    set internalValue(value: DataOciPsqlDbSystemNetworkDetails | undefined);
    get nsgIds(): string[];
    get primaryDbEndpointPrivateIp(): string;
    get subnetId(): string;
}
export declare class DataOciPsqlDbSystemNetworkDetailsList 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): DataOciPsqlDbSystemNetworkDetailsOutputReference;
}
export interface DataOciPsqlDbSystemPatchOperations {
}
export declare function dataOciPsqlDbSystemPatchOperationsToTerraform(struct?: DataOciPsqlDbSystemPatchOperations): any;
export declare function dataOciPsqlDbSystemPatchOperationsToHclTerraform(struct?: DataOciPsqlDbSystemPatchOperations): any;
export declare class DataOciPsqlDbSystemPatchOperationsOutputReference 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(): DataOciPsqlDbSystemPatchOperations | undefined;
    set internalValue(value: DataOciPsqlDbSystemPatchOperations | undefined);
    get from(): string;
    get operation(): string;
    get position(): string;
    get selectedItem(): string;
    get selection(): string;
    private _value;
    get value(): cdktf.StringMap;
}
export declare class DataOciPsqlDbSystemPatchOperationsList 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): DataOciPsqlDbSystemPatchOperationsOutputReference;
}
export interface DataOciPsqlDbSystemSource {
}
export declare function dataOciPsqlDbSystemSourceToTerraform(struct?: DataOciPsqlDbSystemSource): any;
export declare function dataOciPsqlDbSystemSourceToHclTerraform(struct?: DataOciPsqlDbSystemSource): any;
export declare class DataOciPsqlDbSystemSourceOutputReference 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(): DataOciPsqlDbSystemSource | undefined;
    set internalValue(value: DataOciPsqlDbSystemSource | undefined);
    get backupId(): string;
    get isHavingRestoreConfigOverrides(): cdktf.IResolvable;
    get sourceType(): string;
}
export declare class DataOciPsqlDbSystemSourceList 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): DataOciPsqlDbSystemSourceOutputReference;
}
export interface DataOciPsqlDbSystemStorageDetails {
}
export declare function dataOciPsqlDbSystemStorageDetailsToTerraform(struct?: DataOciPsqlDbSystemStorageDetails): any;
export declare function dataOciPsqlDbSystemStorageDetailsToHclTerraform(struct?: DataOciPsqlDbSystemStorageDetails): any;
export declare class DataOciPsqlDbSystemStorageDetailsOutputReference 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(): DataOciPsqlDbSystemStorageDetails | undefined;
    set internalValue(value: DataOciPsqlDbSystemStorageDetails | undefined);
    get availabilityDomain(): string;
    get iops(): string;
    get isRegionallyDurable(): cdktf.IResolvable;
    get systemType(): string;
}
export declare class DataOciPsqlDbSystemStorageDetailsList 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): DataOciPsqlDbSystemStorageDetailsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/psql_db_system oci_psql_db_system}
*/
export declare class DataOciPsqlDbSystem extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_psql_db_system";
    /**
    * Generates CDKTF code for importing a DataOciPsqlDbSystem 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 DataOciPsqlDbSystem to import
    * @param importFromId The id of the existing DataOciPsqlDbSystem that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/psql_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 DataOciPsqlDbSystem to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/psql_db_system oci_psql_db_system} Data Source
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options DataOciPsqlDbSystemConfig
    */
    constructor(scope: Construct, id: string, config: DataOciPsqlDbSystemConfig);
    get adminUsername(): string;
    get applyConfig(): string;
    get compartmentId(): string;
    get configId(): string;
    private _credentials;
    get credentials(): DataOciPsqlDbSystemCredentialsList;
    private _dbSystemId?;
    get dbSystemId(): string;
    set dbSystemId(value: string);
    get dbSystemIdInput(): string | undefined;
    get dbVersion(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get description(): string;
    get displayName(): string;
    private _excludedFields?;
    get excludedFields(): string;
    set excludedFields(value: string);
    resetExcludedFields(): void;
    get excludedFieldsInput(): string | undefined;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get instanceCount(): number;
    get instanceMemorySizeInGbs(): number;
    get instanceOcpuCount(): number;
    private _instances;
    get instances(): DataOciPsqlDbSystemInstancesList;
    private _instancesDetails;
    get instancesDetails(): DataOciPsqlDbSystemInstancesDetailsList;
    get lifecycleDetails(): string;
    private _managementPolicy;
    get managementPolicy(): DataOciPsqlDbSystemManagementPolicyList;
    private _networkDetails;
    get networkDetails(): DataOciPsqlDbSystemNetworkDetailsList;
    private _patchOperations;
    get patchOperations(): DataOciPsqlDbSystemPatchOperationsList;
    get shape(): string;
    private _source;
    get source(): DataOciPsqlDbSystemSourceList;
    get state(): string;
    private _storageDetails;
    get storageDetails(): DataOciPsqlDbSystemStorageDetailsList;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get systemType(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
