import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciDatascienceModelsConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#compartment_id DataOciDatascienceModels#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#created_by DataOciDatascienceModels#created_by}
    */
    readonly createdBy?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#display_name DataOciDatascienceModels#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#id DataOciDatascienceModels#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/data-sources/datascience_models#model_version_set_id DataOciDatascienceModels#model_version_set_id}
    */
    readonly modelVersionSetId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#model_version_set_name DataOciDatascienceModels#model_version_set_name}
    */
    readonly modelVersionSetName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#project_id DataOciDatascienceModels#project_id}
    */
    readonly projectId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#state DataOciDatascienceModels#state}
    */
    readonly state?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#version_label DataOciDatascienceModels#version_label}
    */
    readonly versionLabel?: string;
    /**
    * filter block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#filter DataOciDatascienceModels#filter}
    */
    readonly filter?: DataOciDatascienceModelsFilter[] | cdktf.IResolvable;
}
export interface DataOciDatascienceModelsModelsBackupOperationDetails {
}
export declare function dataOciDatascienceModelsModelsBackupOperationDetailsToTerraform(struct?: DataOciDatascienceModelsModelsBackupOperationDetails): any;
export declare function dataOciDatascienceModelsModelsBackupOperationDetailsToHclTerraform(struct?: DataOciDatascienceModelsModelsBackupOperationDetails): any;
export declare class DataOciDatascienceModelsModelsBackupOperationDetailsOutputReference 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(): DataOciDatascienceModelsModelsBackupOperationDetails | undefined;
    set internalValue(value: DataOciDatascienceModelsModelsBackupOperationDetails | undefined);
    get backupState(): string;
    get backupStateDetails(): string;
    get timeLastBackup(): string;
}
export declare class DataOciDatascienceModelsModelsBackupOperationDetailsList 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): DataOciDatascienceModelsModelsBackupOperationDetailsOutputReference;
}
export interface DataOciDatascienceModelsModelsBackupSetting {
}
export declare function dataOciDatascienceModelsModelsBackupSettingToTerraform(struct?: DataOciDatascienceModelsModelsBackupSetting): any;
export declare function dataOciDatascienceModelsModelsBackupSettingToHclTerraform(struct?: DataOciDatascienceModelsModelsBackupSetting): any;
export declare class DataOciDatascienceModelsModelsBackupSettingOutputReference 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(): DataOciDatascienceModelsModelsBackupSetting | undefined;
    set internalValue(value: DataOciDatascienceModelsModelsBackupSetting | undefined);
    get backupRegion(): string;
    get customerNotificationType(): string;
    get isBackupEnabled(): cdktf.IResolvable;
}
export declare class DataOciDatascienceModelsModelsBackupSettingList 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): DataOciDatascienceModelsModelsBackupSettingOutputReference;
}
export interface DataOciDatascienceModelsModelsCustomMetadataListStruct {
}
export declare function dataOciDatascienceModelsModelsCustomMetadataListStructToTerraform(struct?: DataOciDatascienceModelsModelsCustomMetadataListStruct): any;
export declare function dataOciDatascienceModelsModelsCustomMetadataListStructToHclTerraform(struct?: DataOciDatascienceModelsModelsCustomMetadataListStruct): any;
export declare class DataOciDatascienceModelsModelsCustomMetadataListStructOutputReference 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(): DataOciDatascienceModelsModelsCustomMetadataListStruct | undefined;
    set internalValue(value: DataOciDatascienceModelsModelsCustomMetadataListStruct | undefined);
    get category(): string;
    get description(): string;
    get key(): string;
    get value(): string;
}
export declare class DataOciDatascienceModelsModelsCustomMetadataListStructList 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): DataOciDatascienceModelsModelsCustomMetadataListStructOutputReference;
}
export interface DataOciDatascienceModelsModelsDefinedMetadataListStruct {
}
export declare function dataOciDatascienceModelsModelsDefinedMetadataListStructToTerraform(struct?: DataOciDatascienceModelsModelsDefinedMetadataListStruct): any;
export declare function dataOciDatascienceModelsModelsDefinedMetadataListStructToHclTerraform(struct?: DataOciDatascienceModelsModelsDefinedMetadataListStruct): any;
export declare class DataOciDatascienceModelsModelsDefinedMetadataListStructOutputReference 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(): DataOciDatascienceModelsModelsDefinedMetadataListStruct | undefined;
    set internalValue(value: DataOciDatascienceModelsModelsDefinedMetadataListStruct | undefined);
    get category(): string;
    get description(): string;
    get key(): string;
    get value(): string;
}
export declare class DataOciDatascienceModelsModelsDefinedMetadataListStructList 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): DataOciDatascienceModelsModelsDefinedMetadataListStructOutputReference;
}
export interface DataOciDatascienceModelsModelsRetentionOperationDetails {
}
export declare function dataOciDatascienceModelsModelsRetentionOperationDetailsToTerraform(struct?: DataOciDatascienceModelsModelsRetentionOperationDetails): any;
export declare function dataOciDatascienceModelsModelsRetentionOperationDetailsToHclTerraform(struct?: DataOciDatascienceModelsModelsRetentionOperationDetails): any;
export declare class DataOciDatascienceModelsModelsRetentionOperationDetailsOutputReference 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(): DataOciDatascienceModelsModelsRetentionOperationDetails | undefined;
    set internalValue(value: DataOciDatascienceModelsModelsRetentionOperationDetails | undefined);
    get archiveState(): string;
    get archiveStateDetails(): string;
    get deleteState(): string;
    get deleteStateDetails(): string;
    get timeArchivalScheduled(): string;
    get timeDeletionScheduled(): string;
}
export declare class DataOciDatascienceModelsModelsRetentionOperationDetailsList 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): DataOciDatascienceModelsModelsRetentionOperationDetailsOutputReference;
}
export interface DataOciDatascienceModelsModelsRetentionSetting {
}
export declare function dataOciDatascienceModelsModelsRetentionSettingToTerraform(struct?: DataOciDatascienceModelsModelsRetentionSetting): any;
export declare function dataOciDatascienceModelsModelsRetentionSettingToHclTerraform(struct?: DataOciDatascienceModelsModelsRetentionSetting): any;
export declare class DataOciDatascienceModelsModelsRetentionSettingOutputReference 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(): DataOciDatascienceModelsModelsRetentionSetting | undefined;
    set internalValue(value: DataOciDatascienceModelsModelsRetentionSetting | undefined);
    get archiveAfterDays(): number;
    get customerNotificationType(): string;
    get deleteAfterDays(): number;
}
export declare class DataOciDatascienceModelsModelsRetentionSettingList 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): DataOciDatascienceModelsModelsRetentionSettingOutputReference;
}
export interface DataOciDatascienceModelsModels {
}
export declare function dataOciDatascienceModelsModelsToTerraform(struct?: DataOciDatascienceModelsModels): any;
export declare function dataOciDatascienceModelsModelsToHclTerraform(struct?: DataOciDatascienceModelsModels): any;
export declare class DataOciDatascienceModelsModelsOutputReference 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(): DataOciDatascienceModelsModels | undefined;
    set internalValue(value: DataOciDatascienceModelsModels | undefined);
    get artifactContentDisposition(): string;
    get artifactContentLength(): string;
    get artifactContentMd5(): string;
    get artifactLastModified(): string;
    private _backupOperationDetails;
    get backupOperationDetails(): DataOciDatascienceModelsModelsBackupOperationDetailsList;
    private _backupSetting;
    get backupSetting(): DataOciDatascienceModelsModelsBackupSettingList;
    get compartmentId(): string;
    get createdBy(): string;
    private _customMetadataList;
    get customMetadataList(): DataOciDatascienceModelsModelsCustomMetadataListStructList;
    private _definedMetadataList;
    get definedMetadataList(): DataOciDatascienceModelsModelsDefinedMetadataListStructList;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get description(): string;
    get displayName(): string;
    get emptyModel(): cdktf.IResolvable;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get inputSchema(): string;
    get lifecycleDetails(): string;
    get modelArtifact(): string;
    get modelVersionSetId(): string;
    get modelVersionSetName(): string;
    get outputSchema(): string;
    get projectId(): string;
    private _retentionOperationDetails;
    get retentionOperationDetails(): DataOciDatascienceModelsModelsRetentionOperationDetailsList;
    private _retentionSetting;
    get retentionSetting(): DataOciDatascienceModelsModelsRetentionSettingList;
    get state(): string;
    get timeCreated(): string;
    get versionLabel(): string;
}
export declare class DataOciDatascienceModelsModelsList 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): DataOciDatascienceModelsModelsOutputReference;
}
export interface DataOciDatascienceModelsFilter {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#name DataOciDatascienceModels#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#regex DataOciDatascienceModels#regex}
    */
    readonly regex?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#values DataOciDatascienceModels#values}
    */
    readonly values: string[];
}
export declare function dataOciDatascienceModelsFilterToTerraform(struct?: DataOciDatascienceModelsFilter | cdktf.IResolvable): any;
export declare function dataOciDatascienceModelsFilterToHclTerraform(struct?: DataOciDatascienceModelsFilter | cdktf.IResolvable): any;
export declare class DataOciDatascienceModelsFilterOutputReference 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(): DataOciDatascienceModelsFilter | cdktf.IResolvable | undefined;
    set internalValue(value: DataOciDatascienceModelsFilter | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _regex?;
    get regex(): boolean | cdktf.IResolvable;
    set regex(value: boolean | cdktf.IResolvable);
    resetRegex(): void;
    get regexInput(): boolean | cdktf.IResolvable | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    get valuesInput(): string[] | undefined;
}
export declare class DataOciDatascienceModelsFilterList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DataOciDatascienceModelsFilter[] | 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): DataOciDatascienceModelsFilterOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models oci_datascience_models}
*/
export declare class DataOciDatascienceModels extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_datascience_models";
    /**
    * Generates CDKTF code for importing a DataOciDatascienceModels 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 DataOciDatascienceModels to import
    * @param importFromId The id of the existing DataOciDatascienceModels that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/datascience_models#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciDatascienceModels 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/datascience_models oci_datascience_models} 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 DataOciDatascienceModelsConfig
    */
    constructor(scope: Construct, id: string, config: DataOciDatascienceModelsConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _createdBy?;
    get createdBy(): string;
    set createdBy(value: string);
    resetCreatedBy(): void;
    get createdByInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _modelVersionSetId?;
    get modelVersionSetId(): string;
    set modelVersionSetId(value: string);
    resetModelVersionSetId(): void;
    get modelVersionSetIdInput(): string | undefined;
    private _modelVersionSetName?;
    get modelVersionSetName(): string;
    set modelVersionSetName(value: string);
    resetModelVersionSetName(): void;
    get modelVersionSetNameInput(): string | undefined;
    private _models;
    get models(): DataOciDatascienceModelsModelsList;
    private _projectId?;
    get projectId(): string;
    set projectId(value: string);
    resetProjectId(): void;
    get projectIdInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _versionLabel?;
    get versionLabel(): string;
    set versionLabel(value: string);
    resetVersionLabel(): void;
    get versionLabelInput(): string | undefined;
    private _filter;
    get filter(): DataOciDatascienceModelsFilterList;
    putFilter(value: DataOciDatascienceModelsFilter[] | cdktf.IResolvable): void;
    resetFilter(): void;
    get filterInput(): cdktf.IResolvable | DataOciDatascienceModelsFilter[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
