import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciStackMonitoringMetricExtensionsConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#compartment_id DataOciStackMonitoringMetricExtensions#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#enabled_on_resource_id DataOciStackMonitoringMetricExtensions#enabled_on_resource_id}
    */
    readonly enabledOnResourceId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#id DataOciStackMonitoringMetricExtensions#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/stack_monitoring_metric_extensions#name DataOciStackMonitoringMetricExtensions#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#resource_type DataOciStackMonitoringMetricExtensions#resource_type}
    */
    readonly resourceType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#state DataOciStackMonitoringMetricExtensions#state}
    */
    readonly state?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#status DataOciStackMonitoringMetricExtensions#status}
    */
    readonly status?: string;
    /**
    * filter block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#filter DataOciStackMonitoringMetricExtensions#filter}
    */
    readonly filter?: DataOciStackMonitoringMetricExtensionsFilter[] | cdktf.IResolvable;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResources {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResourcesToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResources): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResourcesToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResources): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResourcesOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResources | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResources | undefined);
    get resourceId(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResourcesList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResourcesOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStruct {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStructToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStruct): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStructToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStruct): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStructOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStruct | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStruct | undefined);
    get computeExpression(): string;
    get dataType(): string;
    get displayName(): string;
    get isDimension(): cdktf.IResolvable;
    get isHidden(): cdktf.IResolvable;
    get metricCategory(): string;
    get name(): string;
    get unit(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStructList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStructOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetails {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetailsToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetails): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetailsToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetails): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetailsOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetails | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetails | undefined);
    get inParamPosition(): number;
    get inParamValue(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetailsList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetailsOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetails {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetailsToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetails): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetailsToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetails): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetailsOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetails | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetails | undefined);
    get outParamPosition(): number;
    get outParamType(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetailsList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetailsOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetails {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetailsToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetails): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetailsToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetails): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetailsOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetails | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetails | undefined);
    get content(): string;
    get name(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetailsList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetailsOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetails {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetailsToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetails): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetailsToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetails): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetailsOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetails | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetails | undefined);
    get content(): string;
    get scriptFileName(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetailsList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetailsOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryProperties {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryProperties): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryProperties): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryProperties | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryProperties | undefined);
    get arguments(): string;
    get autoRowPrefix(): string;
    get collectionMethod(): string;
    get command(): string;
    get delimiter(): string;
    get identityMetric(): string;
    private _inParamDetails;
    get inParamDetails(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesInParamDetailsList;
    get isMetricServiceEnabled(): cdktf.IResolvable;
    get jmxAttributes(): string;
    get managedBeanQuery(): string;
    private _outParamDetails;
    get outParamDetails(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutParamDetailsList;
    private _scriptDetails;
    get scriptDetails(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesScriptDetailsList;
    private _sqlDetails;
    get sqlDetails(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesSqlDetailsList;
    get sqlType(): string;
    get startsWith(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItems {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItems): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItems): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItems | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItems | undefined);
    get collectionMethod(): string;
    get collectionRecurrences(): string;
    get compartmentId(): string;
    get createdBy(): string;
    get description(): string;
    get displayName(): string;
    private _enabledOnResources;
    get enabledOnResources(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsEnabledOnResourcesList;
    get enabledOnResourcesCount(): number;
    get id(): string;
    get lastUpdatedBy(): string;
    private _metricList;
    get metricList(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsMetricListStructList;
    get name(): string;
    get publishTrigger(): cdktf.IResolvable;
    private _queryProperties;
    get queryProperties(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsQueryPropertiesList;
    get resourceType(): string;
    get resourceUri(): string;
    get state(): string;
    get status(): string;
    get tenantId(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsMetricExtensionCollection {
}
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionToTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollection): any;
export declare function dataOciStackMonitoringMetricExtensionsMetricExtensionCollectionToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsMetricExtensionCollection): any;
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionOutputReference 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(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollection | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsMetricExtensionCollection | undefined);
    private _items;
    get items(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionItemsList;
}
export declare class DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionList 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): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionOutputReference;
}
export interface DataOciStackMonitoringMetricExtensionsFilter {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#name DataOciStackMonitoringMetricExtensions#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#regex DataOciStackMonitoringMetricExtensions#regex}
    */
    readonly regex?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#values DataOciStackMonitoringMetricExtensions#values}
    */
    readonly values: string[];
}
export declare function dataOciStackMonitoringMetricExtensionsFilterToTerraform(struct?: DataOciStackMonitoringMetricExtensionsFilter | cdktf.IResolvable): any;
export declare function dataOciStackMonitoringMetricExtensionsFilterToHclTerraform(struct?: DataOciStackMonitoringMetricExtensionsFilter | cdktf.IResolvable): any;
export declare class DataOciStackMonitoringMetricExtensionsFilterOutputReference 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(): DataOciStackMonitoringMetricExtensionsFilter | cdktf.IResolvable | undefined;
    set internalValue(value: DataOciStackMonitoringMetricExtensionsFilter | 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 DataOciStackMonitoringMetricExtensionsFilterList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DataOciStackMonitoringMetricExtensionsFilter[] | 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): DataOciStackMonitoringMetricExtensionsFilterOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions oci_stack_monitoring_metric_extensions}
*/
export declare class DataOciStackMonitoringMetricExtensions extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_stack_monitoring_metric_extensions";
    /**
    * Generates CDKTF code for importing a DataOciStackMonitoringMetricExtensions 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 DataOciStackMonitoringMetricExtensions to import
    * @param importFromId The id of the existing DataOciStackMonitoringMetricExtensions that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/stack_monitoring_metric_extensions#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciStackMonitoringMetricExtensions 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/stack_monitoring_metric_extensions oci_stack_monitoring_metric_extensions} 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 DataOciStackMonitoringMetricExtensionsConfig
    */
    constructor(scope: Construct, id: string, config: DataOciStackMonitoringMetricExtensionsConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _enabledOnResourceId?;
    get enabledOnResourceId(): string;
    set enabledOnResourceId(value: string);
    resetEnabledOnResourceId(): void;
    get enabledOnResourceIdInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _metricExtensionCollection;
    get metricExtensionCollection(): DataOciStackMonitoringMetricExtensionsMetricExtensionCollectionList;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _resourceType?;
    get resourceType(): string;
    set resourceType(value: string);
    resetResourceType(): void;
    get resourceTypeInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _status?;
    get status(): string;
    set status(value: string);
    resetStatus(): void;
    get statusInput(): string | undefined;
    private _filter;
    get filter(): DataOciStackMonitoringMetricExtensionsFilterList;
    putFilter(value: DataOciStackMonitoringMetricExtensionsFilter[] | cdktf.IResolvable): void;
    resetFilter(): void;
    get filterInput(): cdktf.IResolvable | DataOciStackMonitoringMetricExtensionsFilter[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
