import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface StackMonitoringMonitoredResourceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#compartment_id StackMonitoringMonitoredResource#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#defined_tags StackMonitoringMonitoredResource#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#display_name StackMonitoringMonitoredResource#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#external_id StackMonitoringMonitoredResource#external_id}
    */
    readonly externalId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#external_resource_id StackMonitoringMonitoredResource#external_resource_id}
    */
    readonly externalResourceId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#freeform_tags StackMonitoringMonitoredResource#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#host_name StackMonitoringMonitoredResource#host_name}
    */
    readonly hostName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#id StackMonitoringMonitoredResource#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#license StackMonitoringMonitoredResource#license}
    */
    readonly license?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#management_agent_id StackMonitoringMonitoredResource#management_agent_id}
    */
    readonly managementAgentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#resource_time_zone StackMonitoringMonitoredResource#resource_time_zone}
    */
    readonly resourceTimeZone?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#type StackMonitoringMonitoredResource#type}
    */
    readonly type: string;
    /**
    * additional_aliases block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#additional_aliases StackMonitoringMonitoredResource#additional_aliases}
    */
    readonly additionalAliases?: StackMonitoringMonitoredResourceAdditionalAliases[] | cdktf.IResolvable;
    /**
    * additional_credentials block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#additional_credentials StackMonitoringMonitoredResource#additional_credentials}
    */
    readonly additionalCredentials?: StackMonitoringMonitoredResourceAdditionalCredentials[] | cdktf.IResolvable;
    /**
    * aliases block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#aliases StackMonitoringMonitoredResource#aliases}
    */
    readonly aliases?: StackMonitoringMonitoredResourceAliases;
    /**
    * credentials block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#credentials StackMonitoringMonitoredResource#credentials}
    */
    readonly credentials?: StackMonitoringMonitoredResourceCredentials;
    /**
    * database_connection_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#database_connection_details StackMonitoringMonitoredResource#database_connection_details}
    */
    readonly databaseConnectionDetails?: StackMonitoringMonitoredResourceDatabaseConnectionDetails;
    /**
    * properties block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#properties StackMonitoringMonitoredResource#properties}
    */
    readonly properties?: StackMonitoringMonitoredResourceProperties[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#timeouts StackMonitoringMonitoredResource#timeouts}
    */
    readonly timeouts?: StackMonitoringMonitoredResourceTimeouts;
}
export interface StackMonitoringMonitoredResourceAdditionalAliasesCredential {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#service StackMonitoringMonitoredResource#service}
    */
    readonly service: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#source StackMonitoringMonitoredResource#source}
    */
    readonly source: string;
}
export declare function stackMonitoringMonitoredResourceAdditionalAliasesCredentialToTerraform(struct?: StackMonitoringMonitoredResourceAdditionalAliasesCredentialOutputReference | StackMonitoringMonitoredResourceAdditionalAliasesCredential): any;
export declare function stackMonitoringMonitoredResourceAdditionalAliasesCredentialToHclTerraform(struct?: StackMonitoringMonitoredResourceAdditionalAliasesCredentialOutputReference | StackMonitoringMonitoredResourceAdditionalAliasesCredential): any;
export declare class StackMonitoringMonitoredResourceAdditionalAliasesCredentialOutputReference 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(): StackMonitoringMonitoredResourceAdditionalAliasesCredential | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceAdditionalAliasesCredential | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _service?;
    get service(): string;
    set service(value: string);
    get serviceInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
}
export interface StackMonitoringMonitoredResourceAdditionalAliases {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#source StackMonitoringMonitoredResource#source}
    */
    readonly source: string;
    /**
    * credential block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#credential StackMonitoringMonitoredResource#credential}
    */
    readonly credential: StackMonitoringMonitoredResourceAdditionalAliasesCredential;
}
export declare function stackMonitoringMonitoredResourceAdditionalAliasesToTerraform(struct?: StackMonitoringMonitoredResourceAdditionalAliases | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourceAdditionalAliasesToHclTerraform(struct?: StackMonitoringMonitoredResourceAdditionalAliases | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourceAdditionalAliasesOutputReference 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(): StackMonitoringMonitoredResourceAdditionalAliases | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceAdditionalAliases | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
    private _credential;
    get credential(): StackMonitoringMonitoredResourceAdditionalAliasesCredentialOutputReference;
    putCredential(value: StackMonitoringMonitoredResourceAdditionalAliasesCredential): void;
    get credentialInput(): StackMonitoringMonitoredResourceAdditionalAliasesCredential | undefined;
}
export declare class StackMonitoringMonitoredResourceAdditionalAliasesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMonitoredResourceAdditionalAliases[] | 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): StackMonitoringMonitoredResourceAdditionalAliasesOutputReference;
}
export interface StackMonitoringMonitoredResourceAdditionalCredentialsProperties {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#value StackMonitoringMonitoredResource#value}
    */
    readonly value?: string;
}
export declare function stackMonitoringMonitoredResourceAdditionalCredentialsPropertiesToTerraform(struct?: StackMonitoringMonitoredResourceAdditionalCredentialsProperties | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourceAdditionalCredentialsPropertiesToHclTerraform(struct?: StackMonitoringMonitoredResourceAdditionalCredentialsProperties | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourceAdditionalCredentialsPropertiesOutputReference 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(): StackMonitoringMonitoredResourceAdditionalCredentialsProperties | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceAdditionalCredentialsProperties | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class StackMonitoringMonitoredResourceAdditionalCredentialsPropertiesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMonitoredResourceAdditionalCredentialsProperties[] | 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): StackMonitoringMonitoredResourceAdditionalCredentialsPropertiesOutputReference;
}
export interface StackMonitoringMonitoredResourceAdditionalCredentials {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#credential_type StackMonitoringMonitoredResource#credential_type}
    */
    readonly credentialType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#description StackMonitoringMonitoredResource#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#key_id StackMonitoringMonitoredResource#key_id}
    */
    readonly keyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#source StackMonitoringMonitoredResource#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#type StackMonitoringMonitoredResource#type}
    */
    readonly type?: string;
    /**
    * properties block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#properties StackMonitoringMonitoredResource#properties}
    */
    readonly properties?: StackMonitoringMonitoredResourceAdditionalCredentialsProperties[] | cdktf.IResolvable;
}
export declare function stackMonitoringMonitoredResourceAdditionalCredentialsToTerraform(struct?: StackMonitoringMonitoredResourceAdditionalCredentials | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourceAdditionalCredentialsToHclTerraform(struct?: StackMonitoringMonitoredResourceAdditionalCredentials | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourceAdditionalCredentialsOutputReference 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(): StackMonitoringMonitoredResourceAdditionalCredentials | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceAdditionalCredentials | cdktf.IResolvable | undefined);
    private _credentialType?;
    get credentialType(): string;
    set credentialType(value: string);
    resetCredentialType(): void;
    get credentialTypeInput(): string | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _keyId?;
    get keyId(): string;
    set keyId(value: string);
    resetKeyId(): void;
    get keyIdInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    resetSource(): void;
    get sourceInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
    private _properties;
    get properties(): StackMonitoringMonitoredResourceAdditionalCredentialsPropertiesList;
    putProperties(value: StackMonitoringMonitoredResourceAdditionalCredentialsProperties[] | cdktf.IResolvable): void;
    resetProperties(): void;
    get propertiesInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceAdditionalCredentialsProperties[] | undefined;
}
export declare class StackMonitoringMonitoredResourceAdditionalCredentialsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMonitoredResourceAdditionalCredentials[] | 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): StackMonitoringMonitoredResourceAdditionalCredentialsOutputReference;
}
export interface StackMonitoringMonitoredResourceAliasesCredential {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#service StackMonitoringMonitoredResource#service}
    */
    readonly service: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#source StackMonitoringMonitoredResource#source}
    */
    readonly source: string;
}
export declare function stackMonitoringMonitoredResourceAliasesCredentialToTerraform(struct?: StackMonitoringMonitoredResourceAliasesCredentialOutputReference | StackMonitoringMonitoredResourceAliasesCredential): any;
export declare function stackMonitoringMonitoredResourceAliasesCredentialToHclTerraform(struct?: StackMonitoringMonitoredResourceAliasesCredentialOutputReference | StackMonitoringMonitoredResourceAliasesCredential): any;
export declare class StackMonitoringMonitoredResourceAliasesCredentialOutputReference 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(): StackMonitoringMonitoredResourceAliasesCredential | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceAliasesCredential | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _service?;
    get service(): string;
    set service(value: string);
    get serviceInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
}
export interface StackMonitoringMonitoredResourceAliases {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#source StackMonitoringMonitoredResource#source}
    */
    readonly source: string;
    /**
    * credential block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#credential StackMonitoringMonitoredResource#credential}
    */
    readonly credential: StackMonitoringMonitoredResourceAliasesCredential;
}
export declare function stackMonitoringMonitoredResourceAliasesToTerraform(struct?: StackMonitoringMonitoredResourceAliasesOutputReference | StackMonitoringMonitoredResourceAliases): any;
export declare function stackMonitoringMonitoredResourceAliasesToHclTerraform(struct?: StackMonitoringMonitoredResourceAliasesOutputReference | StackMonitoringMonitoredResourceAliases): any;
export declare class StackMonitoringMonitoredResourceAliasesOutputReference 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(): StackMonitoringMonitoredResourceAliases | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceAliases | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
    private _credential;
    get credential(): StackMonitoringMonitoredResourceAliasesCredentialOutputReference;
    putCredential(value: StackMonitoringMonitoredResourceAliasesCredential): void;
    get credentialInput(): StackMonitoringMonitoredResourceAliasesCredential | undefined;
}
export interface StackMonitoringMonitoredResourceCredentialsProperties {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#value StackMonitoringMonitoredResource#value}
    */
    readonly value?: string;
}
export declare function stackMonitoringMonitoredResourceCredentialsPropertiesToTerraform(struct?: StackMonitoringMonitoredResourceCredentialsProperties | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourceCredentialsPropertiesToHclTerraform(struct?: StackMonitoringMonitoredResourceCredentialsProperties | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourceCredentialsPropertiesOutputReference 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(): StackMonitoringMonitoredResourceCredentialsProperties | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceCredentialsProperties | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class StackMonitoringMonitoredResourceCredentialsPropertiesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMonitoredResourceCredentialsProperties[] | 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): StackMonitoringMonitoredResourceCredentialsPropertiesOutputReference;
}
export interface StackMonitoringMonitoredResourceCredentials {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#credential_type StackMonitoringMonitoredResource#credential_type}
    */
    readonly credentialType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#description StackMonitoringMonitoredResource#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#key_id StackMonitoringMonitoredResource#key_id}
    */
    readonly keyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#source StackMonitoringMonitoredResource#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#type StackMonitoringMonitoredResource#type}
    */
    readonly type?: string;
    /**
    * properties block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#properties StackMonitoringMonitoredResource#properties}
    */
    readonly properties?: StackMonitoringMonitoredResourceCredentialsProperties[] | cdktf.IResolvable;
}
export declare function stackMonitoringMonitoredResourceCredentialsToTerraform(struct?: StackMonitoringMonitoredResourceCredentialsOutputReference | StackMonitoringMonitoredResourceCredentials): any;
export declare function stackMonitoringMonitoredResourceCredentialsToHclTerraform(struct?: StackMonitoringMonitoredResourceCredentialsOutputReference | StackMonitoringMonitoredResourceCredentials): any;
export declare class StackMonitoringMonitoredResourceCredentialsOutputReference 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(): StackMonitoringMonitoredResourceCredentials | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceCredentials | undefined);
    private _credentialType?;
    get credentialType(): string;
    set credentialType(value: string);
    resetCredentialType(): void;
    get credentialTypeInput(): string | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _keyId?;
    get keyId(): string;
    set keyId(value: string);
    resetKeyId(): void;
    get keyIdInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    resetSource(): void;
    get sourceInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
    private _properties;
    get properties(): StackMonitoringMonitoredResourceCredentialsPropertiesList;
    putProperties(value: StackMonitoringMonitoredResourceCredentialsProperties[] | cdktf.IResolvable): void;
    resetProperties(): void;
    get propertiesInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceCredentialsProperties[] | undefined;
}
export interface StackMonitoringMonitoredResourceDatabaseConnectionDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#connector_id StackMonitoringMonitoredResource#connector_id}
    */
    readonly connectorId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#db_id StackMonitoringMonitoredResource#db_id}
    */
    readonly dbId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#db_unique_name StackMonitoringMonitoredResource#db_unique_name}
    */
    readonly dbUniqueName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#port StackMonitoringMonitoredResource#port}
    */
    readonly port: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#protocol StackMonitoringMonitoredResource#protocol}
    */
    readonly protocol: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#service_name StackMonitoringMonitoredResource#service_name}
    */
    readonly serviceName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#ssl_secret_id StackMonitoringMonitoredResource#ssl_secret_id}
    */
    readonly sslSecretId?: string;
}
export declare function stackMonitoringMonitoredResourceDatabaseConnectionDetailsToTerraform(struct?: StackMonitoringMonitoredResourceDatabaseConnectionDetailsOutputReference | StackMonitoringMonitoredResourceDatabaseConnectionDetails): any;
export declare function stackMonitoringMonitoredResourceDatabaseConnectionDetailsToHclTerraform(struct?: StackMonitoringMonitoredResourceDatabaseConnectionDetailsOutputReference | StackMonitoringMonitoredResourceDatabaseConnectionDetails): any;
export declare class StackMonitoringMonitoredResourceDatabaseConnectionDetailsOutputReference 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(): StackMonitoringMonitoredResourceDatabaseConnectionDetails | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceDatabaseConnectionDetails | undefined);
    private _connectorId?;
    get connectorId(): string;
    set connectorId(value: string);
    resetConnectorId(): void;
    get connectorIdInput(): string | undefined;
    private _dbId?;
    get dbId(): string;
    set dbId(value: string);
    resetDbId(): void;
    get dbIdInput(): string | undefined;
    private _dbUniqueName?;
    get dbUniqueName(): string;
    set dbUniqueName(value: string);
    resetDbUniqueName(): void;
    get dbUniqueNameInput(): string | undefined;
    private _port?;
    get port(): number;
    set port(value: number);
    get portInput(): number | undefined;
    private _protocol?;
    get protocol(): string;
    set protocol(value: string);
    get protocolInput(): string | undefined;
    private _serviceName?;
    get serviceName(): string;
    set serviceName(value: string);
    get serviceNameInput(): string | undefined;
    private _sslSecretId?;
    get sslSecretId(): string;
    set sslSecretId(value: string);
    resetSslSecretId(): void;
    get sslSecretIdInput(): string | undefined;
}
export interface StackMonitoringMonitoredResourceProperties {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#name StackMonitoringMonitoredResource#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#value StackMonitoringMonitoredResource#value}
    */
    readonly value?: string;
}
export declare function stackMonitoringMonitoredResourcePropertiesToTerraform(struct?: StackMonitoringMonitoredResourceProperties | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourcePropertiesToHclTerraform(struct?: StackMonitoringMonitoredResourceProperties | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourcePropertiesOutputReference 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(): StackMonitoringMonitoredResourceProperties | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceProperties | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class StackMonitoringMonitoredResourcePropertiesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMonitoredResourceProperties[] | 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): StackMonitoringMonitoredResourcePropertiesOutputReference;
}
export interface StackMonitoringMonitoredResourceTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#create StackMonitoringMonitoredResource#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#delete StackMonitoringMonitoredResource#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#update StackMonitoringMonitoredResource#update}
    */
    readonly update?: string;
}
export declare function stackMonitoringMonitoredResourceTimeoutsToTerraform(struct?: StackMonitoringMonitoredResourceTimeouts | cdktf.IResolvable): any;
export declare function stackMonitoringMonitoredResourceTimeoutsToHclTerraform(struct?: StackMonitoringMonitoredResourceTimeouts | cdktf.IResolvable): any;
export declare class StackMonitoringMonitoredResourceTimeoutsOutputReference 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(): StackMonitoringMonitoredResourceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMonitoredResourceTimeouts | 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 oci_stack_monitoring_monitored_resource}
*/
export declare class StackMonitoringMonitoredResource extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_stack_monitoring_monitored_resource";
    /**
    * Generates CDKTF code for importing a StackMonitoringMonitoredResource 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 StackMonitoringMonitoredResource to import
    * @param importFromId The id of the existing StackMonitoringMonitoredResource that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_monitored_resource#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the StackMonitoringMonitoredResource 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 oci_stack_monitoring_monitored_resource} 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 StackMonitoringMonitoredResourceConfig
    */
    constructor(scope: Construct, id: string, config: StackMonitoringMonitoredResourceConfig);
    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 _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _externalId?;
    get externalId(): string;
    set externalId(value: string);
    resetExternalId(): void;
    get externalIdInput(): string | undefined;
    private _externalResourceId?;
    get externalResourceId(): string;
    set externalResourceId(value: string);
    resetExternalResourceId(): void;
    get externalResourceIdInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _hostName?;
    get hostName(): string;
    set hostName(value: string);
    resetHostName(): void;
    get hostNameInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _license?;
    get license(): string;
    set license(value: string);
    resetLicense(): void;
    get licenseInput(): string | undefined;
    private _managementAgentId?;
    get managementAgentId(): string;
    set managementAgentId(value: string);
    resetManagementAgentId(): void;
    get managementAgentIdInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    get resourceCategory(): string;
    private _resourceTimeZone?;
    get resourceTimeZone(): string;
    set resourceTimeZone(value: string);
    resetResourceTimeZone(): void;
    get resourceTimeZoneInput(): string | undefined;
    get sourceType(): string;
    get state(): string;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get tenantId(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _additionalAliases;
    get additionalAliases(): StackMonitoringMonitoredResourceAdditionalAliasesList;
    putAdditionalAliases(value: StackMonitoringMonitoredResourceAdditionalAliases[] | cdktf.IResolvable): void;
    resetAdditionalAliases(): void;
    get additionalAliasesInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceAdditionalAliases[] | undefined;
    private _additionalCredentials;
    get additionalCredentials(): StackMonitoringMonitoredResourceAdditionalCredentialsList;
    putAdditionalCredentials(value: StackMonitoringMonitoredResourceAdditionalCredentials[] | cdktf.IResolvable): void;
    resetAdditionalCredentials(): void;
    get additionalCredentialsInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceAdditionalCredentials[] | undefined;
    private _aliases;
    get aliases(): StackMonitoringMonitoredResourceAliasesOutputReference;
    putAliases(value: StackMonitoringMonitoredResourceAliases): void;
    resetAliases(): void;
    get aliasesInput(): StackMonitoringMonitoredResourceAliases | undefined;
    private _credentials;
    get credentials(): StackMonitoringMonitoredResourceCredentialsOutputReference;
    putCredentials(value: StackMonitoringMonitoredResourceCredentials): void;
    resetCredentials(): void;
    get credentialsInput(): StackMonitoringMonitoredResourceCredentials | undefined;
    private _databaseConnectionDetails;
    get databaseConnectionDetails(): StackMonitoringMonitoredResourceDatabaseConnectionDetailsOutputReference;
    putDatabaseConnectionDetails(value: StackMonitoringMonitoredResourceDatabaseConnectionDetails): void;
    resetDatabaseConnectionDetails(): void;
    get databaseConnectionDetailsInput(): StackMonitoringMonitoredResourceDatabaseConnectionDetails | undefined;
    private _properties;
    get properties(): StackMonitoringMonitoredResourcePropertiesList;
    putProperties(value: StackMonitoringMonitoredResourceProperties[] | cdktf.IResolvable): void;
    resetProperties(): void;
    get propertiesInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceProperties[] | undefined;
    private _timeouts;
    get timeouts(): StackMonitoringMonitoredResourceTimeoutsOutputReference;
    putTimeouts(value: StackMonitoringMonitoredResourceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | StackMonitoringMonitoredResourceTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
