import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface StackMonitoringMaintenanceWindowConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#compartment_id StackMonitoringMaintenanceWindow#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#description StackMonitoringMaintenanceWindow#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#id StackMonitoringMaintenanceWindow#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_maintenance_window#name StackMonitoringMaintenanceWindow#name}
    */
    readonly name: string;
    /**
    * resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#resources StackMonitoringMaintenanceWindow#resources}
    */
    readonly resources: StackMonitoringMaintenanceWindowResources[] | cdktf.IResolvable;
    /**
    * schedule block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#schedule StackMonitoringMaintenanceWindow#schedule}
    */
    readonly schedule: StackMonitoringMaintenanceWindowSchedule;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#timeouts StackMonitoringMaintenanceWindow#timeouts}
    */
    readonly timeouts?: StackMonitoringMaintenanceWindowTimeouts;
}
export interface StackMonitoringMaintenanceWindowResourcesDetails {
}
export declare function stackMonitoringMaintenanceWindowResourcesDetailsToTerraform(struct?: StackMonitoringMaintenanceWindowResourcesDetails): any;
export declare function stackMonitoringMaintenanceWindowResourcesDetailsToHclTerraform(struct?: StackMonitoringMaintenanceWindowResourcesDetails): any;
export declare class StackMonitoringMaintenanceWindowResourcesDetailsOutputReference 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(): StackMonitoringMaintenanceWindowResourcesDetails | undefined;
    set internalValue(value: StackMonitoringMaintenanceWindowResourcesDetails | undefined);
    get name(): string;
    get numberOfMembers(): number;
    get resourceId(): string;
    get type(): string;
}
export declare class StackMonitoringMaintenanceWindowResourcesDetailsList 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): StackMonitoringMaintenanceWindowResourcesDetailsOutputReference;
}
export interface StackMonitoringMaintenanceWindowResources {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#are_members_included StackMonitoringMaintenanceWindow#are_members_included}
    */
    readonly areMembersIncluded?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#resource_id StackMonitoringMaintenanceWindow#resource_id}
    */
    readonly resourceId: string;
}
export declare function stackMonitoringMaintenanceWindowResourcesToTerraform(struct?: StackMonitoringMaintenanceWindowResources | cdktf.IResolvable): any;
export declare function stackMonitoringMaintenanceWindowResourcesToHclTerraform(struct?: StackMonitoringMaintenanceWindowResources | cdktf.IResolvable): any;
export declare class StackMonitoringMaintenanceWindowResourcesOutputReference 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(): StackMonitoringMaintenanceWindowResources | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMaintenanceWindowResources | cdktf.IResolvable | undefined);
    private _areMembersIncluded?;
    get areMembersIncluded(): boolean | cdktf.IResolvable;
    set areMembersIncluded(value: boolean | cdktf.IResolvable);
    resetAreMembersIncluded(): void;
    get areMembersIncludedInput(): boolean | cdktf.IResolvable | undefined;
    private _resourceId?;
    get resourceId(): string;
    set resourceId(value: string);
    get resourceIdInput(): string | undefined;
}
export declare class StackMonitoringMaintenanceWindowResourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: StackMonitoringMaintenanceWindowResources[] | 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): StackMonitoringMaintenanceWindowResourcesOutputReference;
}
export interface StackMonitoringMaintenanceWindowSchedule {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#maintenance_window_duration StackMonitoringMaintenanceWindow#maintenance_window_duration}
    */
    readonly maintenanceWindowDuration?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#maintenance_window_recurrences StackMonitoringMaintenanceWindow#maintenance_window_recurrences}
    */
    readonly maintenanceWindowRecurrences?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#schedule_type StackMonitoringMaintenanceWindow#schedule_type}
    */
    readonly scheduleType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#time_maintenance_window_end StackMonitoringMaintenanceWindow#time_maintenance_window_end}
    */
    readonly timeMaintenanceWindowEnd?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#time_maintenance_window_start StackMonitoringMaintenanceWindow#time_maintenance_window_start}
    */
    readonly timeMaintenanceWindowStart?: string;
}
export declare function stackMonitoringMaintenanceWindowScheduleToTerraform(struct?: StackMonitoringMaintenanceWindowScheduleOutputReference | StackMonitoringMaintenanceWindowSchedule): any;
export declare function stackMonitoringMaintenanceWindowScheduleToHclTerraform(struct?: StackMonitoringMaintenanceWindowScheduleOutputReference | StackMonitoringMaintenanceWindowSchedule): any;
export declare class StackMonitoringMaintenanceWindowScheduleOutputReference 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(): StackMonitoringMaintenanceWindowSchedule | undefined;
    set internalValue(value: StackMonitoringMaintenanceWindowSchedule | undefined);
    private _maintenanceWindowDuration?;
    get maintenanceWindowDuration(): string;
    set maintenanceWindowDuration(value: string);
    resetMaintenanceWindowDuration(): void;
    get maintenanceWindowDurationInput(): string | undefined;
    private _maintenanceWindowRecurrences?;
    get maintenanceWindowRecurrences(): string;
    set maintenanceWindowRecurrences(value: string);
    resetMaintenanceWindowRecurrences(): void;
    get maintenanceWindowRecurrencesInput(): string | undefined;
    private _scheduleType?;
    get scheduleType(): string;
    set scheduleType(value: string);
    get scheduleTypeInput(): string | undefined;
    private _timeMaintenanceWindowEnd?;
    get timeMaintenanceWindowEnd(): string;
    set timeMaintenanceWindowEnd(value: string);
    resetTimeMaintenanceWindowEnd(): void;
    get timeMaintenanceWindowEndInput(): string | undefined;
    private _timeMaintenanceWindowStart?;
    get timeMaintenanceWindowStart(): string;
    set timeMaintenanceWindowStart(value: string);
    resetTimeMaintenanceWindowStart(): void;
    get timeMaintenanceWindowStartInput(): string | undefined;
}
export interface StackMonitoringMaintenanceWindowTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#create StackMonitoringMaintenanceWindow#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#delete StackMonitoringMaintenanceWindow#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#update StackMonitoringMaintenanceWindow#update}
    */
    readonly update?: string;
}
export declare function stackMonitoringMaintenanceWindowTimeoutsToTerraform(struct?: StackMonitoringMaintenanceWindowTimeouts | cdktf.IResolvable): any;
export declare function stackMonitoringMaintenanceWindowTimeoutsToHclTerraform(struct?: StackMonitoringMaintenanceWindowTimeouts | cdktf.IResolvable): any;
export declare class StackMonitoringMaintenanceWindowTimeoutsOutputReference 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(): StackMonitoringMaintenanceWindowTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: StackMonitoringMaintenanceWindowTimeouts | 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_maintenance_window oci_stack_monitoring_maintenance_window}
*/
export declare class StackMonitoringMaintenanceWindow extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_stack_monitoring_maintenance_window";
    /**
    * Generates CDKTF code for importing a StackMonitoringMaintenanceWindow 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 StackMonitoringMaintenanceWindow to import
    * @param importFromId The id of the existing StackMonitoringMaintenanceWindow that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/stack_monitoring_maintenance_window#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the StackMonitoringMaintenanceWindow 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_maintenance_window oci_stack_monitoring_maintenance_window} 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 StackMonitoringMaintenanceWindowConfig
    */
    constructor(scope: Construct, id: string, config: StackMonitoringMaintenanceWindowConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get lifecycleDetails(): string;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _resourcesDetails;
    get resourcesDetails(): StackMonitoringMaintenanceWindowResourcesDetailsList;
    get state(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _resources;
    get resources(): StackMonitoringMaintenanceWindowResourcesList;
    putResources(value: StackMonitoringMaintenanceWindowResources[] | cdktf.IResolvable): void;
    get resourcesInput(): cdktf.IResolvable | StackMonitoringMaintenanceWindowResources[] | undefined;
    private _schedule;
    get schedule(): StackMonitoringMaintenanceWindowScheduleOutputReference;
    putSchedule(value: StackMonitoringMaintenanceWindowSchedule): void;
    get scheduleInput(): StackMonitoringMaintenanceWindowSchedule | undefined;
    private _timeouts;
    get timeouts(): StackMonitoringMaintenanceWindowTimeoutsOutputReference;
    putTimeouts(value: StackMonitoringMaintenanceWindowTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | StackMonitoringMaintenanceWindowTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
