import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface StackMonitoringMonitoredResourceTaskConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#compartment_id StackMonitoringMonitoredResourceTask#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#defined_tags StackMonitoringMonitoredResourceTask#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#freeform_tags StackMonitoringMonitoredResourceTask#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#id StackMonitoringMonitoredResourceTask#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_monitored_resource_task#name StackMonitoringMonitoredResourceTask#name}
    */
    readonly name?: string;
    /**
    * task_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#task_details StackMonitoringMonitoredResourceTask#task_details}
    */
    readonly taskDetails: StackMonitoringMonitoredResourceTaskTaskDetails;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#timeouts StackMonitoringMonitoredResourceTask#timeouts}
    */
    readonly timeouts?: StackMonitoringMonitoredResourceTaskTimeouts;
}
export interface StackMonitoringMonitoredResourceTaskTaskDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#availability_proxy_metric_collection_interval StackMonitoringMonitoredResourceTask#availability_proxy_metric_collection_interval}
    */
    readonly availabilityProxyMetricCollectionInterval?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#availability_proxy_metrics StackMonitoringMonitoredResourceTask#availability_proxy_metrics}
    */
    readonly availabilityProxyMetrics?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#console_path_prefix StackMonitoringMonitoredResourceTask#console_path_prefix}
    */
    readonly consolePathPrefix?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#external_id_mapping StackMonitoringMonitoredResourceTask#external_id_mapping}
    */
    readonly externalIdMapping?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#lifecycle_status_mappings_for_up_status StackMonitoringMonitoredResourceTask#lifecycle_status_mappings_for_up_status}
    */
    readonly lifecycleStatusMappingsForUpStatus?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#namespace StackMonitoringMonitoredResourceTask#namespace}
    */
    readonly namespace: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#resource_group StackMonitoringMonitoredResourceTask#resource_group}
    */
    readonly resourceGroup?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#resource_name_filter StackMonitoringMonitoredResourceTask#resource_name_filter}
    */
    readonly resourceNameFilter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#resource_name_mapping StackMonitoringMonitoredResourceTask#resource_name_mapping}
    */
    readonly resourceNameMapping?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#resource_type_filter StackMonitoringMonitoredResourceTask#resource_type_filter}
    */
    readonly resourceTypeFilter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#resource_type_mapping StackMonitoringMonitoredResourceTask#resource_type_mapping}
    */
    readonly resourceTypeMapping?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#service_base_url StackMonitoringMonitoredResourceTask#service_base_url}
    */
    readonly serviceBaseUrl?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#should_use_metrics_flow_for_status StackMonitoringMonitoredResourceTask#should_use_metrics_flow_for_status}
    */
    readonly shouldUseMetricsFlowForStatus?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#source StackMonitoringMonitoredResourceTask#source}
    */
    readonly source: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#type StackMonitoringMonitoredResourceTask#type}
    */
    readonly type: string;
}
export declare function stackMonitoringMonitoredResourceTaskTaskDetailsToTerraform(struct?: StackMonitoringMonitoredResourceTaskTaskDetailsOutputReference | StackMonitoringMonitoredResourceTaskTaskDetails): any;
export declare function stackMonitoringMonitoredResourceTaskTaskDetailsToHclTerraform(struct?: StackMonitoringMonitoredResourceTaskTaskDetailsOutputReference | StackMonitoringMonitoredResourceTaskTaskDetails): any;
export declare class StackMonitoringMonitoredResourceTaskTaskDetailsOutputReference 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(): StackMonitoringMonitoredResourceTaskTaskDetails | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceTaskTaskDetails | undefined);
    private _availabilityProxyMetricCollectionInterval?;
    get availabilityProxyMetricCollectionInterval(): number;
    set availabilityProxyMetricCollectionInterval(value: number);
    resetAvailabilityProxyMetricCollectionInterval(): void;
    get availabilityProxyMetricCollectionIntervalInput(): number | undefined;
    private _availabilityProxyMetrics?;
    get availabilityProxyMetrics(): string[];
    set availabilityProxyMetrics(value: string[]);
    resetAvailabilityProxyMetrics(): void;
    get availabilityProxyMetricsInput(): string[] | undefined;
    private _consolePathPrefix?;
    get consolePathPrefix(): string;
    set consolePathPrefix(value: string);
    resetConsolePathPrefix(): void;
    get consolePathPrefixInput(): string | undefined;
    private _externalIdMapping?;
    get externalIdMapping(): string;
    set externalIdMapping(value: string);
    resetExternalIdMapping(): void;
    get externalIdMappingInput(): string | undefined;
    private _lifecycleStatusMappingsForUpStatus?;
    get lifecycleStatusMappingsForUpStatus(): string[];
    set lifecycleStatusMappingsForUpStatus(value: string[]);
    resetLifecycleStatusMappingsForUpStatus(): void;
    get lifecycleStatusMappingsForUpStatusInput(): string[] | undefined;
    private _namespace?;
    get namespace(): string;
    set namespace(value: string);
    get namespaceInput(): string | undefined;
    private _resourceGroup?;
    get resourceGroup(): string;
    set resourceGroup(value: string);
    resetResourceGroup(): void;
    get resourceGroupInput(): string | undefined;
    private _resourceNameFilter?;
    get resourceNameFilter(): string;
    set resourceNameFilter(value: string);
    resetResourceNameFilter(): void;
    get resourceNameFilterInput(): string | undefined;
    private _resourceNameMapping?;
    get resourceNameMapping(): string;
    set resourceNameMapping(value: string);
    resetResourceNameMapping(): void;
    get resourceNameMappingInput(): string | undefined;
    private _resourceTypeFilter?;
    get resourceTypeFilter(): string;
    set resourceTypeFilter(value: string);
    resetResourceTypeFilter(): void;
    get resourceTypeFilterInput(): string | undefined;
    private _resourceTypeMapping?;
    get resourceTypeMapping(): string;
    set resourceTypeMapping(value: string);
    resetResourceTypeMapping(): void;
    get resourceTypeMappingInput(): string | undefined;
    private _serviceBaseUrl?;
    get serviceBaseUrl(): string;
    set serviceBaseUrl(value: string);
    resetServiceBaseUrl(): void;
    get serviceBaseUrlInput(): string | undefined;
    private _shouldUseMetricsFlowForStatus?;
    get shouldUseMetricsFlowForStatus(): boolean | cdktf.IResolvable;
    set shouldUseMetricsFlowForStatus(value: boolean | cdktf.IResolvable);
    resetShouldUseMetricsFlowForStatus(): void;
    get shouldUseMetricsFlowForStatusInput(): boolean | cdktf.IResolvable | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface StackMonitoringMonitoredResourceTaskTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#create StackMonitoringMonitoredResourceTask#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#delete StackMonitoringMonitoredResourceTask#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#update StackMonitoringMonitoredResourceTask#update}
    */
    readonly update?: string;
}
export declare function stackMonitoringMonitoredResourceTaskTimeoutsToTerraform(struct?: StackMonitoringMonitoredResourceTaskTimeouts | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourceTaskTimeoutsToHclTerraform(struct?: StackMonitoringMonitoredResourceTaskTimeouts | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourceTaskTimeoutsOutputReference 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(): StackMonitoringMonitoredResourceTaskTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceTaskTimeouts | 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_monitored_resource_task oci_stack_monitoring_monitored_resource_task}
*/
export declare class StackMonitoringMonitoredResourceTask extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_stack_monitoring_monitored_resource_task";
    /**
    * Generates CDKTF code for importing a StackMonitoringMonitoredResourceTask 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 StackMonitoringMonitoredResourceTask to import
    * @param importFromId The id of the existing StackMonitoringMonitoredResourceTask that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource_task#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the StackMonitoringMonitoredResourceTask 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_monitored_resource_task oci_stack_monitoring_monitored_resource_task} 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 StackMonitoringMonitoredResourceTaskConfig
    */
    constructor(scope: Construct, id: string, config: StackMonitoringMonitoredResourceTaskConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    get state(): string;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get tenantId(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
    get workRequestIds(): string[];
    private _taskDetails;
    get taskDetails(): StackMonitoringMonitoredResourceTaskTaskDetailsOutputReference;
    putTaskDetails(value: StackMonitoringMonitoredResourceTaskTaskDetails): void;
    get taskDetailsInput(): StackMonitoringMonitoredResourceTaskTaskDetails | undefined;
    private _timeouts;
    get timeouts(): StackMonitoringMonitoredResourceTaskTimeoutsOutputReference;
    putTimeouts(value: StackMonitoringMonitoredResourceTaskTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceTaskTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
