import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface StackMonitoringMetricExtensionConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#collection_recurrences StackMonitoringMetricExtension#collection_recurrences}
    */
    readonly collectionRecurrences: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#compartment_id StackMonitoringMetricExtension#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#description StackMonitoringMetricExtension#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#display_name StackMonitoringMetricExtension#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#id StackMonitoringMetricExtension#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/stack_monitoring_metric_extension#name StackMonitoringMetricExtension#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#publish_trigger StackMonitoringMetricExtension#publish_trigger}
    */
    readonly publishTrigger?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#resource_type StackMonitoringMetricExtension#resource_type}
    */
    readonly resourceType: string;
    /**
    * metric_list block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#metric_list StackMonitoringMetricExtension#metric_list}
    */
    readonly metricList: StackMonitoringMetricExtensionMetricListStruct[] | cdktf.IResolvable;
    /**
    * query_properties block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#query_properties StackMonitoringMetricExtension#query_properties}
    */
    readonly queryProperties: StackMonitoringMetricExtensionQueryProperties;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#timeouts StackMonitoringMetricExtension#timeouts}
    */
    readonly timeouts?: StackMonitoringMetricExtensionTimeouts;
}
export interface StackMonitoringMetricExtensionEnabledOnResources {
}
export declare function stackMonitoringMetricExtensionEnabledOnResourcesToTerraform(struct?: StackMonitoringMetricExtensionEnabledOnResources): any;
export declare function stackMonitoringMetricExtensionEnabledOnResourcesToHclTerraform(struct?: StackMonitoringMetricExtensionEnabledOnResources): any;
export declare class StackMonitoringMetricExtensionEnabledOnResourcesOutputReference 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(): StackMonitoringMetricExtensionEnabledOnResources | undefined;
    set internalValue(value: StackMonitoringMetricExtensionEnabledOnResources | undefined);
    get resourceId(): string;
}
export declare class StackMonitoringMetricExtensionEnabledOnResourcesList 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): StackMonitoringMetricExtensionEnabledOnResourcesOutputReference;
}
export interface StackMonitoringMetricExtensionMetricListStruct {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#compute_expression StackMonitoringMetricExtension#compute_expression}
    */
    readonly computeExpression?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#data_type StackMonitoringMetricExtension#data_type}
    */
    readonly dataType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#display_name StackMonitoringMetricExtension#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#is_dimension StackMonitoringMetricExtension#is_dimension}
    */
    readonly isDimension?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#is_hidden StackMonitoringMetricExtension#is_hidden}
    */
    readonly isHidden?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#metric_category StackMonitoringMetricExtension#metric_category}
    */
    readonly metricCategory?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#name StackMonitoringMetricExtension#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#unit StackMonitoringMetricExtension#unit}
    */
    readonly unit?: string;
}
export declare function stackMonitoringMetricExtensionMetricListStructToTerraform(struct?: StackMonitoringMetricExtensionMetricListStruct | cdktf.IResolvable): any;
export declare function stackMonitoringMetricExtensionMetricListStructToHclTerraform(struct?: StackMonitoringMetricExtensionMetricListStruct | cdktf.IResolvable): any;
export declare class StackMonitoringMetricExtensionMetricListStructOutputReference 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(): StackMonitoringMetricExtensionMetricListStruct | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMetricExtensionMetricListStruct | cdktf.IResolvable | undefined);
    private _computeExpression?;
    get computeExpression(): string;
    set computeExpression(value: string);
    resetComputeExpression(): void;
    get computeExpressionInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    get dataTypeInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _isDimension?;
    get isDimension(): boolean | cdktf.IResolvable;
    set isDimension(value: boolean | cdktf.IResolvable);
    resetIsDimension(): void;
    get isDimensionInput(): boolean | cdktf.IResolvable | undefined;
    private _isHidden?;
    get isHidden(): boolean | cdktf.IResolvable;
    set isHidden(value: boolean | cdktf.IResolvable);
    resetIsHidden(): void;
    get isHiddenInput(): boolean | cdktf.IResolvable | undefined;
    private _metricCategory?;
    get metricCategory(): string;
    set metricCategory(value: string);
    resetMetricCategory(): void;
    get metricCategoryInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _unit?;
    get unit(): string;
    set unit(value: string);
    resetUnit(): void;
    get unitInput(): string | undefined;
}
export declare class StackMonitoringMetricExtensionMetricListStructList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMetricExtensionMetricListStruct[] | 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): StackMonitoringMetricExtensionMetricListStructOutputReference;
}
export interface StackMonitoringMetricExtensionQueryPropertiesInParamDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#in_param_position StackMonitoringMetricExtension#in_param_position}
    */
    readonly inParamPosition: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#in_param_value StackMonitoringMetricExtension#in_param_value}
    */
    readonly inParamValue: string;
}
export declare function stackMonitoringMetricExtensionQueryPropertiesInParamDetailsToTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesInParamDetails | cdktf.IResolvable): any;
export declare function stackMonitoringMetricExtensionQueryPropertiesInParamDetailsToHclTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesInParamDetails | cdktf.IResolvable): any;
export declare class StackMonitoringMetricExtensionQueryPropertiesInParamDetailsOutputReference 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(): StackMonitoringMetricExtensionQueryPropertiesInParamDetails | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMetricExtensionQueryPropertiesInParamDetails | cdktf.IResolvable | undefined);
    private _inParamPosition?;
    get inParamPosition(): number;
    set inParamPosition(value: number);
    get inParamPositionInput(): number | undefined;
    private _inParamValue?;
    get inParamValue(): string;
    set inParamValue(value: string);
    get inParamValueInput(): string | undefined;
}
export declare class StackMonitoringMetricExtensionQueryPropertiesInParamDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMetricExtensionQueryPropertiesInParamDetails[] | 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): StackMonitoringMetricExtensionQueryPropertiesInParamDetailsOutputReference;
}
export interface StackMonitoringMetricExtensionQueryPropertiesOutParamDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#out_param_position StackMonitoringMetricExtension#out_param_position}
    */
    readonly outParamPosition: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#out_param_type StackMonitoringMetricExtension#out_param_type}
    */
    readonly outParamType: string;
}
export declare function stackMonitoringMetricExtensionQueryPropertiesOutParamDetailsToTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesOutParamDetailsOutputReference | StackMonitoringMetricExtensionQueryPropertiesOutParamDetails): any;
export declare function stackMonitoringMetricExtensionQueryPropertiesOutParamDetailsToHclTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesOutParamDetailsOutputReference | StackMonitoringMetricExtensionQueryPropertiesOutParamDetails): any;
export declare class StackMonitoringMetricExtensionQueryPropertiesOutParamDetailsOutputReference 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(): StackMonitoringMetricExtensionQueryPropertiesOutParamDetails | undefined;
    set internalValue(value: StackMonitoringMetricExtensionQueryPropertiesOutParamDetails | undefined);
    private _outParamPosition?;
    get outParamPosition(): number;
    set outParamPosition(value: number);
    get outParamPositionInput(): number | undefined;
    private _outParamType?;
    get outParamType(): string;
    set outParamType(value: string);
    get outParamTypeInput(): string | undefined;
}
export interface StackMonitoringMetricExtensionQueryPropertiesScriptDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#content StackMonitoringMetricExtension#content}
    */
    readonly content: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#name StackMonitoringMetricExtension#name}
    */
    readonly name: string;
}
export declare function stackMonitoringMetricExtensionQueryPropertiesScriptDetailsToTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesScriptDetailsOutputReference | StackMonitoringMetricExtensionQueryPropertiesScriptDetails): any;
export declare function stackMonitoringMetricExtensionQueryPropertiesScriptDetailsToHclTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesScriptDetailsOutputReference | StackMonitoringMetricExtensionQueryPropertiesScriptDetails): any;
export declare class StackMonitoringMetricExtensionQueryPropertiesScriptDetailsOutputReference 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(): StackMonitoringMetricExtensionQueryPropertiesScriptDetails | undefined;
    set internalValue(value: StackMonitoringMetricExtensionQueryPropertiesScriptDetails | undefined);
    private _content?;
    get content(): string;
    set content(value: string);
    get contentInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
}
export interface StackMonitoringMetricExtensionQueryPropertiesSqlDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#content StackMonitoringMetricExtension#content}
    */
    readonly content: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#script_file_name StackMonitoringMetricExtension#script_file_name}
    */
    readonly scriptFileName?: string;
}
export declare function stackMonitoringMetricExtensionQueryPropertiesSqlDetailsToTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesSqlDetailsOutputReference | StackMonitoringMetricExtensionQueryPropertiesSqlDetails): any;
export declare function stackMonitoringMetricExtensionQueryPropertiesSqlDetailsToHclTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesSqlDetailsOutputReference | StackMonitoringMetricExtensionQueryPropertiesSqlDetails): any;
export declare class StackMonitoringMetricExtensionQueryPropertiesSqlDetailsOutputReference 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(): StackMonitoringMetricExtensionQueryPropertiesSqlDetails | undefined;
    set internalValue(value: StackMonitoringMetricExtensionQueryPropertiesSqlDetails | undefined);
    private _content?;
    get content(): string;
    set content(value: string);
    get contentInput(): string | undefined;
    private _scriptFileName?;
    get scriptFileName(): string;
    set scriptFileName(value: string);
    resetScriptFileName(): void;
    get scriptFileNameInput(): string | undefined;
}
export interface StackMonitoringMetricExtensionQueryProperties {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#arguments StackMonitoringMetricExtension#arguments}
    */
    readonly arguments?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#auto_row_prefix StackMonitoringMetricExtension#auto_row_prefix}
    */
    readonly autoRowPrefix?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#collection_method StackMonitoringMetricExtension#collection_method}
    */
    readonly collectionMethod: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#command StackMonitoringMetricExtension#command}
    */
    readonly command?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#delimiter StackMonitoringMetricExtension#delimiter}
    */
    readonly delimiter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#identity_metric StackMonitoringMetricExtension#identity_metric}
    */
    readonly identityMetric?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#is_metric_service_enabled StackMonitoringMetricExtension#is_metric_service_enabled}
    */
    readonly isMetricServiceEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#jmx_attributes StackMonitoringMetricExtension#jmx_attributes}
    */
    readonly jmxAttributes?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#managed_bean_query StackMonitoringMetricExtension#managed_bean_query}
    */
    readonly managedBeanQuery?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#sql_type StackMonitoringMetricExtension#sql_type}
    */
    readonly sqlType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#starts_with StackMonitoringMetricExtension#starts_with}
    */
    readonly startsWith?: string;
    /**
    * in_param_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#in_param_details StackMonitoringMetricExtension#in_param_details}
    */
    readonly inParamDetails?: StackMonitoringMetricExtensionQueryPropertiesInParamDetails[] | cdktf.IResolvable;
    /**
    * out_param_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#out_param_details StackMonitoringMetricExtension#out_param_details}
    */
    readonly outParamDetails?: StackMonitoringMetricExtensionQueryPropertiesOutParamDetails;
    /**
    * script_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#script_details StackMonitoringMetricExtension#script_details}
    */
    readonly scriptDetails?: StackMonitoringMetricExtensionQueryPropertiesScriptDetails;
    /**
    * sql_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#sql_details StackMonitoringMetricExtension#sql_details}
    */
    readonly sqlDetails?: StackMonitoringMetricExtensionQueryPropertiesSqlDetails;
}
export declare function stackMonitoringMetricExtensionQueryPropertiesToTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesOutputReference | StackMonitoringMetricExtensionQueryProperties): any;
export declare function stackMonitoringMetricExtensionQueryPropertiesToHclTerraform(struct?: StackMonitoringMetricExtensionQueryPropertiesOutputReference | StackMonitoringMetricExtensionQueryProperties): any;
export declare class StackMonitoringMetricExtensionQueryPropertiesOutputReference 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(): StackMonitoringMetricExtensionQueryProperties | undefined;
    set internalValue(value: StackMonitoringMetricExtensionQueryProperties | undefined);
    private _arguments?;
    get arguments(): string;
    set arguments(value: string);
    resetArguments(): void;
    get argumentsInput(): string | undefined;
    private _autoRowPrefix?;
    get autoRowPrefix(): string;
    set autoRowPrefix(value: string);
    resetAutoRowPrefix(): void;
    get autoRowPrefixInput(): string | undefined;
    private _collectionMethod?;
    get collectionMethod(): string;
    set collectionMethod(value: string);
    get collectionMethodInput(): string | undefined;
    private _command?;
    get command(): string;
    set command(value: string);
    resetCommand(): void;
    get commandInput(): string | undefined;
    private _delimiter?;
    get delimiter(): string;
    set delimiter(value: string);
    resetDelimiter(): void;
    get delimiterInput(): string | undefined;
    private _identityMetric?;
    get identityMetric(): string;
    set identityMetric(value: string);
    resetIdentityMetric(): void;
    get identityMetricInput(): string | undefined;
    private _isMetricServiceEnabled?;
    get isMetricServiceEnabled(): boolean | cdktf.IResolvable;
    set isMetricServiceEnabled(value: boolean | cdktf.IResolvable);
    resetIsMetricServiceEnabled(): void;
    get isMetricServiceEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _jmxAttributes?;
    get jmxAttributes(): string;
    set jmxAttributes(value: string);
    resetJmxAttributes(): void;
    get jmxAttributesInput(): string | undefined;
    private _managedBeanQuery?;
    get managedBeanQuery(): string;
    set managedBeanQuery(value: string);
    resetManagedBeanQuery(): void;
    get managedBeanQueryInput(): string | undefined;
    private _sqlType?;
    get sqlType(): string;
    set sqlType(value: string);
    resetSqlType(): void;
    get sqlTypeInput(): string | undefined;
    private _startsWith?;
    get startsWith(): string;
    set startsWith(value: string);
    resetStartsWith(): void;
    get startsWithInput(): string | undefined;
    private _inParamDetails;
    get inParamDetails(): StackMonitoringMetricExtensionQueryPropertiesInParamDetailsList;
    putInParamDetails(value: StackMonitoringMetricExtensionQueryPropertiesInParamDetails[] | cdktf.IResolvable): void;
    resetInParamDetails(): void;
    get inParamDetailsInput(): cdktf.IResolvable | StackMonitoringMetricExtensionQueryPropertiesInParamDetails[] | undefined;
    private _outParamDetails;
    get outParamDetails(): StackMonitoringMetricExtensionQueryPropertiesOutParamDetailsOutputReference;
    putOutParamDetails(value: StackMonitoringMetricExtensionQueryPropertiesOutParamDetails): void;
    resetOutParamDetails(): void;
    get outParamDetailsInput(): StackMonitoringMetricExtensionQueryPropertiesOutParamDetails | undefined;
    private _scriptDetails;
    get scriptDetails(): StackMonitoringMetricExtensionQueryPropertiesScriptDetailsOutputReference;
    putScriptDetails(value: StackMonitoringMetricExtensionQueryPropertiesScriptDetails): void;
    resetScriptDetails(): void;
    get scriptDetailsInput(): StackMonitoringMetricExtensionQueryPropertiesScriptDetails | undefined;
    private _sqlDetails;
    get sqlDetails(): StackMonitoringMetricExtensionQueryPropertiesSqlDetailsOutputReference;
    putSqlDetails(value: StackMonitoringMetricExtensionQueryPropertiesSqlDetails): void;
    resetSqlDetails(): void;
    get sqlDetailsInput(): StackMonitoringMetricExtensionQueryPropertiesSqlDetails | undefined;
}
export interface StackMonitoringMetricExtensionTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#create StackMonitoringMetricExtension#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#delete StackMonitoringMetricExtension#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#update StackMonitoringMetricExtension#update}
    */
    readonly update?: string;
}
export declare function stackMonitoringMetricExtensionTimeoutsToTerraform(struct?: StackMonitoringMetricExtensionTimeouts | cdktf.IResolvable): any;
export declare function stackMonitoringMetricExtensionTimeoutsToHclTerraform(struct?: StackMonitoringMetricExtensionTimeouts | cdktf.IResolvable): any;
export declare class StackMonitoringMetricExtensionTimeoutsOutputReference 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(): StackMonitoringMetricExtensionTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMetricExtensionTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension oci_stack_monitoring_metric_extension}
*/
export declare class StackMonitoringMetricExtension extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_stack_monitoring_metric_extension";
    /**
    * Generates CDKTF code for importing a StackMonitoringMetricExtension 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 StackMonitoringMetricExtension to import
    * @param importFromId The id of the existing StackMonitoringMetricExtension that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_metric_extension#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the StackMonitoringMetricExtension 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/stack_monitoring_metric_extension oci_stack_monitoring_metric_extension} 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 StackMonitoringMetricExtensionConfig
    */
    constructor(scope: Construct, id: string, config: StackMonitoringMetricExtensionConfig);
    get collectionMethod(): string;
    private _collectionRecurrences?;
    get collectionRecurrences(): string;
    set collectionRecurrences(value: string);
    get collectionRecurrencesInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    get createdBy(): string;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _enabledOnResources;
    get enabledOnResources(): StackMonitoringMetricExtensionEnabledOnResourcesList;
    get enabledOnResourcesCount(): number;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get lastUpdatedBy(): string;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _publishTrigger?;
    get publishTrigger(): boolean | cdktf.IResolvable;
    set publishTrigger(value: boolean | cdktf.IResolvable);
    resetPublishTrigger(): void;
    get publishTriggerInput(): boolean | cdktf.IResolvable | undefined;
    private _resourceType?;
    get resourceType(): string;
    set resourceType(value: string);
    get resourceTypeInput(): string | undefined;
    get resourceUri(): string;
    get state(): string;
    get status(): string;
    get tenantId(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _metricList;
    get metricList(): StackMonitoringMetricExtensionMetricListStructList;
    putMetricList(value: StackMonitoringMetricExtensionMetricListStruct[] | cdktf.IResolvable): void;
    get metricListInput(): cdktf.IResolvable | StackMonitoringMetricExtensionMetricListStruct[] | undefined;
    private _queryProperties;
    get queryProperties(): StackMonitoringMetricExtensionQueryPropertiesOutputReference;
    putQueryProperties(value: StackMonitoringMetricExtensionQueryProperties): void;
    get queryPropertiesInput(): StackMonitoringMetricExtensionQueryProperties | undefined;
    private _timeouts;
    get timeouts(): StackMonitoringMetricExtensionTimeoutsOutputReference;
    putTimeouts(value: StackMonitoringMetricExtensionTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | StackMonitoringMetricExtensionTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
