import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DesktopsDesktopPoolConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#are_privileged_users DesktopsDesktopPool#are_privileged_users}
    */
    readonly arePrivilegedUsers: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#availability_domain DesktopsDesktopPool#availability_domain}
    */
    readonly availabilityDomain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#compartment_id DesktopsDesktopPool#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#contact_details DesktopsDesktopPool#contact_details}
    */
    readonly contactDetails: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#defined_tags DesktopsDesktopPool#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#description DesktopsDesktopPool#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#display_name DesktopsDesktopPool#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#freeform_tags DesktopsDesktopPool#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#id DesktopsDesktopPool#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/desktops_desktop_pool#is_storage_enabled DesktopsDesktopPool#is_storage_enabled}
    */
    readonly isStorageEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#maximum_size DesktopsDesktopPool#maximum_size}
    */
    readonly maximumSize: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#nsg_ids DesktopsDesktopPool#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#shape_name DesktopsDesktopPool#shape_name}
    */
    readonly shapeName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#standby_size DesktopsDesktopPool#standby_size}
    */
    readonly standbySize: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#storage_backup_policy_id DesktopsDesktopPool#storage_backup_policy_id}
    */
    readonly storageBackupPolicyId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#storage_size_in_gbs DesktopsDesktopPool#storage_size_in_gbs}
    */
    readonly storageSizeInGbs: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#time_start_scheduled DesktopsDesktopPool#time_start_scheduled}
    */
    readonly timeStartScheduled?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#time_stop_scheduled DesktopsDesktopPool#time_stop_scheduled}
    */
    readonly timeStopScheduled?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#use_dedicated_vm_host DesktopsDesktopPool#use_dedicated_vm_host}
    */
    readonly useDedicatedVmHost?: string;
    /**
    * availability_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#availability_policy DesktopsDesktopPool#availability_policy}
    */
    readonly availabilityPolicy: DesktopsDesktopPoolAvailabilityPolicy;
    /**
    * device_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#device_policy DesktopsDesktopPool#device_policy}
    */
    readonly devicePolicy: DesktopsDesktopPoolDevicePolicy;
    /**
    * image block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#image DesktopsDesktopPool#image}
    */
    readonly image: DesktopsDesktopPoolImage;
    /**
    * network_configuration block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#network_configuration DesktopsDesktopPool#network_configuration}
    */
    readonly networkConfiguration: DesktopsDesktopPoolNetworkConfiguration;
    /**
    * private_access_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#private_access_details DesktopsDesktopPool#private_access_details}
    */
    readonly privateAccessDetails?: DesktopsDesktopPoolPrivateAccessDetails;
    /**
    * session_lifecycle_actions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#session_lifecycle_actions DesktopsDesktopPool#session_lifecycle_actions}
    */
    readonly sessionLifecycleActions?: DesktopsDesktopPoolSessionLifecycleActions;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#shape_config DesktopsDesktopPool#shape_config}
    */
    readonly shapeConfig?: DesktopsDesktopPoolShapeConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#timeouts DesktopsDesktopPool#timeouts}
    */
    readonly timeouts?: DesktopsDesktopPoolTimeouts;
}
export interface DesktopsDesktopPoolAvailabilityPolicyStartSchedule {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#cron_expression DesktopsDesktopPool#cron_expression}
    */
    readonly cronExpression: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#timezone DesktopsDesktopPool#timezone}
    */
    readonly timezone: string;
}
export declare function desktopsDesktopPoolAvailabilityPolicyStartScheduleToTerraform(struct?: DesktopsDesktopPoolAvailabilityPolicyStartScheduleOutputReference | DesktopsDesktopPoolAvailabilityPolicyStartSchedule): any;
export declare function desktopsDesktopPoolAvailabilityPolicyStartScheduleToHclTerraform(struct?: DesktopsDesktopPoolAvailabilityPolicyStartScheduleOutputReference | DesktopsDesktopPoolAvailabilityPolicyStartSchedule): any;
export declare class DesktopsDesktopPoolAvailabilityPolicyStartScheduleOutputReference 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(): DesktopsDesktopPoolAvailabilityPolicyStartSchedule | undefined;
    set internalValue(value: DesktopsDesktopPoolAvailabilityPolicyStartSchedule | undefined);
    private _cronExpression?;
    get cronExpression(): string;
    set cronExpression(value: string);
    get cronExpressionInput(): string | undefined;
    private _timezone?;
    get timezone(): string;
    set timezone(value: string);
    get timezoneInput(): string | undefined;
}
export interface DesktopsDesktopPoolAvailabilityPolicyStopSchedule {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#cron_expression DesktopsDesktopPool#cron_expression}
    */
    readonly cronExpression: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#timezone DesktopsDesktopPool#timezone}
    */
    readonly timezone: string;
}
export declare function desktopsDesktopPoolAvailabilityPolicyStopScheduleToTerraform(struct?: DesktopsDesktopPoolAvailabilityPolicyStopScheduleOutputReference | DesktopsDesktopPoolAvailabilityPolicyStopSchedule): any;
export declare function desktopsDesktopPoolAvailabilityPolicyStopScheduleToHclTerraform(struct?: DesktopsDesktopPoolAvailabilityPolicyStopScheduleOutputReference | DesktopsDesktopPoolAvailabilityPolicyStopSchedule): any;
export declare class DesktopsDesktopPoolAvailabilityPolicyStopScheduleOutputReference 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(): DesktopsDesktopPoolAvailabilityPolicyStopSchedule | undefined;
    set internalValue(value: DesktopsDesktopPoolAvailabilityPolicyStopSchedule | undefined);
    private _cronExpression?;
    get cronExpression(): string;
    set cronExpression(value: string);
    get cronExpressionInput(): string | undefined;
    private _timezone?;
    get timezone(): string;
    set timezone(value: string);
    get timezoneInput(): string | undefined;
}
export interface DesktopsDesktopPoolAvailabilityPolicy {
    /**
    * start_schedule block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#start_schedule DesktopsDesktopPool#start_schedule}
    */
    readonly startSchedule?: DesktopsDesktopPoolAvailabilityPolicyStartSchedule;
    /**
    * stop_schedule block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#stop_schedule DesktopsDesktopPool#stop_schedule}
    */
    readonly stopSchedule?: DesktopsDesktopPoolAvailabilityPolicyStopSchedule;
}
export declare function desktopsDesktopPoolAvailabilityPolicyToTerraform(struct?: DesktopsDesktopPoolAvailabilityPolicyOutputReference | DesktopsDesktopPoolAvailabilityPolicy): any;
export declare function desktopsDesktopPoolAvailabilityPolicyToHclTerraform(struct?: DesktopsDesktopPoolAvailabilityPolicyOutputReference | DesktopsDesktopPoolAvailabilityPolicy): any;
export declare class DesktopsDesktopPoolAvailabilityPolicyOutputReference 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(): DesktopsDesktopPoolAvailabilityPolicy | undefined;
    set internalValue(value: DesktopsDesktopPoolAvailabilityPolicy | undefined);
    private _startSchedule;
    get startSchedule(): DesktopsDesktopPoolAvailabilityPolicyStartScheduleOutputReference;
    putStartSchedule(value: DesktopsDesktopPoolAvailabilityPolicyStartSchedule): void;
    resetStartSchedule(): void;
    get startScheduleInput(): DesktopsDesktopPoolAvailabilityPolicyStartSchedule | undefined;
    private _stopSchedule;
    get stopSchedule(): DesktopsDesktopPoolAvailabilityPolicyStopScheduleOutputReference;
    putStopSchedule(value: DesktopsDesktopPoolAvailabilityPolicyStopSchedule): void;
    resetStopSchedule(): void;
    get stopScheduleInput(): DesktopsDesktopPoolAvailabilityPolicyStopSchedule | undefined;
}
export interface DesktopsDesktopPoolDevicePolicy {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#audio_mode DesktopsDesktopPool#audio_mode}
    */
    readonly audioMode: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#cdm_mode DesktopsDesktopPool#cdm_mode}
    */
    readonly cdmMode: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#clipboard_mode DesktopsDesktopPool#clipboard_mode}
    */
    readonly clipboardMode: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#is_display_enabled DesktopsDesktopPool#is_display_enabled}
    */
    readonly isDisplayEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#is_keyboard_enabled DesktopsDesktopPool#is_keyboard_enabled}
    */
    readonly isKeyboardEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#is_pointer_enabled DesktopsDesktopPool#is_pointer_enabled}
    */
    readonly isPointerEnabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#is_printing_enabled DesktopsDesktopPool#is_printing_enabled}
    */
    readonly isPrintingEnabled: boolean | cdktf.IResolvable;
}
export declare function desktopsDesktopPoolDevicePolicyToTerraform(struct?: DesktopsDesktopPoolDevicePolicyOutputReference | DesktopsDesktopPoolDevicePolicy): any;
export declare function desktopsDesktopPoolDevicePolicyToHclTerraform(struct?: DesktopsDesktopPoolDevicePolicyOutputReference | DesktopsDesktopPoolDevicePolicy): any;
export declare class DesktopsDesktopPoolDevicePolicyOutputReference 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(): DesktopsDesktopPoolDevicePolicy | undefined;
    set internalValue(value: DesktopsDesktopPoolDevicePolicy | undefined);
    private _audioMode?;
    get audioMode(): string;
    set audioMode(value: string);
    get audioModeInput(): string | undefined;
    private _cdmMode?;
    get cdmMode(): string;
    set cdmMode(value: string);
    get cdmModeInput(): string | undefined;
    private _clipboardMode?;
    get clipboardMode(): string;
    set clipboardMode(value: string);
    get clipboardModeInput(): string | undefined;
    private _isDisplayEnabled?;
    get isDisplayEnabled(): boolean | cdktf.IResolvable;
    set isDisplayEnabled(value: boolean | cdktf.IResolvable);
    get isDisplayEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isKeyboardEnabled?;
    get isKeyboardEnabled(): boolean | cdktf.IResolvable;
    set isKeyboardEnabled(value: boolean | cdktf.IResolvable);
    get isKeyboardEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isPointerEnabled?;
    get isPointerEnabled(): boolean | cdktf.IResolvable;
    set isPointerEnabled(value: boolean | cdktf.IResolvable);
    get isPointerEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isPrintingEnabled?;
    get isPrintingEnabled(): boolean | cdktf.IResolvable;
    set isPrintingEnabled(value: boolean | cdktf.IResolvable);
    get isPrintingEnabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface DesktopsDesktopPoolImage {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#image_id DesktopsDesktopPool#image_id}
    */
    readonly imageId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#image_name DesktopsDesktopPool#image_name}
    */
    readonly imageName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#operating_system DesktopsDesktopPool#operating_system}
    */
    readonly operatingSystem?: string;
}
export declare function desktopsDesktopPoolImageToTerraform(struct?: DesktopsDesktopPoolImageOutputReference | DesktopsDesktopPoolImage): any;
export declare function desktopsDesktopPoolImageToHclTerraform(struct?: DesktopsDesktopPoolImageOutputReference | DesktopsDesktopPoolImage): any;
export declare class DesktopsDesktopPoolImageOutputReference 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(): DesktopsDesktopPoolImage | undefined;
    set internalValue(value: DesktopsDesktopPoolImage | undefined);
    private _imageId?;
    get imageId(): string;
    set imageId(value: string);
    get imageIdInput(): string | undefined;
    private _imageName?;
    get imageName(): string;
    set imageName(value: string);
    get imageNameInput(): string | undefined;
    private _operatingSystem?;
    get operatingSystem(): string;
    set operatingSystem(value: string);
    resetOperatingSystem(): void;
    get operatingSystemInput(): string | undefined;
}
export interface DesktopsDesktopPoolNetworkConfiguration {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#subnet_id DesktopsDesktopPool#subnet_id}
    */
    readonly subnetId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#vcn_id DesktopsDesktopPool#vcn_id}
    */
    readonly vcnId: string;
}
export declare function desktopsDesktopPoolNetworkConfigurationToTerraform(struct?: DesktopsDesktopPoolNetworkConfigurationOutputReference | DesktopsDesktopPoolNetworkConfiguration): any;
export declare function desktopsDesktopPoolNetworkConfigurationToHclTerraform(struct?: DesktopsDesktopPoolNetworkConfigurationOutputReference | DesktopsDesktopPoolNetworkConfiguration): any;
export declare class DesktopsDesktopPoolNetworkConfigurationOutputReference 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(): DesktopsDesktopPoolNetworkConfiguration | undefined;
    set internalValue(value: DesktopsDesktopPoolNetworkConfiguration | undefined);
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _vcnId?;
    get vcnId(): string;
    set vcnId(value: string);
    get vcnIdInput(): string | undefined;
}
export interface DesktopsDesktopPoolPrivateAccessDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#nsg_ids DesktopsDesktopPool#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#private_ip DesktopsDesktopPool#private_ip}
    */
    readonly privateIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#subnet_id DesktopsDesktopPool#subnet_id}
    */
    readonly subnetId: string;
}
export declare function desktopsDesktopPoolPrivateAccessDetailsToTerraform(struct?: DesktopsDesktopPoolPrivateAccessDetailsOutputReference | DesktopsDesktopPoolPrivateAccessDetails): any;
export declare function desktopsDesktopPoolPrivateAccessDetailsToHclTerraform(struct?: DesktopsDesktopPoolPrivateAccessDetailsOutputReference | DesktopsDesktopPoolPrivateAccessDetails): any;
export declare class DesktopsDesktopPoolPrivateAccessDetailsOutputReference 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(): DesktopsDesktopPoolPrivateAccessDetails | undefined;
    set internalValue(value: DesktopsDesktopPoolPrivateAccessDetails | undefined);
    get endpointFqdn(): string;
    private _nsgIds?;
    get nsgIds(): string[];
    set nsgIds(value: string[]);
    resetNsgIds(): void;
    get nsgIdsInput(): string[] | undefined;
    private _privateIp?;
    get privateIp(): string;
    set privateIp(value: string);
    resetPrivateIp(): void;
    get privateIpInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    get vcnId(): string;
}
export interface DesktopsDesktopPoolSessionLifecycleActionsDisconnect {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#action DesktopsDesktopPool#action}
    */
    readonly action: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#grace_period_in_minutes DesktopsDesktopPool#grace_period_in_minutes}
    */
    readonly gracePeriodInMinutes?: number;
}
export declare function desktopsDesktopPoolSessionLifecycleActionsDisconnectToTerraform(struct?: DesktopsDesktopPoolSessionLifecycleActionsDisconnectOutputReference | DesktopsDesktopPoolSessionLifecycleActionsDisconnect): any;
export declare function desktopsDesktopPoolSessionLifecycleActionsDisconnectToHclTerraform(struct?: DesktopsDesktopPoolSessionLifecycleActionsDisconnectOutputReference | DesktopsDesktopPoolSessionLifecycleActionsDisconnect): any;
export declare class DesktopsDesktopPoolSessionLifecycleActionsDisconnectOutputReference 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(): DesktopsDesktopPoolSessionLifecycleActionsDisconnect | undefined;
    set internalValue(value: DesktopsDesktopPoolSessionLifecycleActionsDisconnect | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    get actionInput(): string | undefined;
    private _gracePeriodInMinutes?;
    get gracePeriodInMinutes(): number;
    set gracePeriodInMinutes(value: number);
    resetGracePeriodInMinutes(): void;
    get gracePeriodInMinutesInput(): number | undefined;
}
export interface DesktopsDesktopPoolSessionLifecycleActionsInactivity {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#action DesktopsDesktopPool#action}
    */
    readonly action: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#grace_period_in_minutes DesktopsDesktopPool#grace_period_in_minutes}
    */
    readonly gracePeriodInMinutes?: number;
}
export declare function desktopsDesktopPoolSessionLifecycleActionsInactivityToTerraform(struct?: DesktopsDesktopPoolSessionLifecycleActionsInactivityOutputReference | DesktopsDesktopPoolSessionLifecycleActionsInactivity): any;
export declare function desktopsDesktopPoolSessionLifecycleActionsInactivityToHclTerraform(struct?: DesktopsDesktopPoolSessionLifecycleActionsInactivityOutputReference | DesktopsDesktopPoolSessionLifecycleActionsInactivity): any;
export declare class DesktopsDesktopPoolSessionLifecycleActionsInactivityOutputReference 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(): DesktopsDesktopPoolSessionLifecycleActionsInactivity | undefined;
    set internalValue(value: DesktopsDesktopPoolSessionLifecycleActionsInactivity | undefined);
    private _action?;
    get action(): string;
    set action(value: string);
    get actionInput(): string | undefined;
    private _gracePeriodInMinutes?;
    get gracePeriodInMinutes(): number;
    set gracePeriodInMinutes(value: number);
    resetGracePeriodInMinutes(): void;
    get gracePeriodInMinutesInput(): number | undefined;
}
export interface DesktopsDesktopPoolSessionLifecycleActions {
    /**
    * disconnect block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#disconnect DesktopsDesktopPool#disconnect}
    */
    readonly disconnect?: DesktopsDesktopPoolSessionLifecycleActionsDisconnect;
    /**
    * inactivity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#inactivity DesktopsDesktopPool#inactivity}
    */
    readonly inactivity?: DesktopsDesktopPoolSessionLifecycleActionsInactivity;
}
export declare function desktopsDesktopPoolSessionLifecycleActionsToTerraform(struct?: DesktopsDesktopPoolSessionLifecycleActionsOutputReference | DesktopsDesktopPoolSessionLifecycleActions): any;
export declare function desktopsDesktopPoolSessionLifecycleActionsToHclTerraform(struct?: DesktopsDesktopPoolSessionLifecycleActionsOutputReference | DesktopsDesktopPoolSessionLifecycleActions): any;
export declare class DesktopsDesktopPoolSessionLifecycleActionsOutputReference 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(): DesktopsDesktopPoolSessionLifecycleActions | undefined;
    set internalValue(value: DesktopsDesktopPoolSessionLifecycleActions | undefined);
    private _disconnect;
    get disconnect(): DesktopsDesktopPoolSessionLifecycleActionsDisconnectOutputReference;
    putDisconnect(value: DesktopsDesktopPoolSessionLifecycleActionsDisconnect): void;
    resetDisconnect(): void;
    get disconnectInput(): DesktopsDesktopPoolSessionLifecycleActionsDisconnect | undefined;
    private _inactivity;
    get inactivity(): DesktopsDesktopPoolSessionLifecycleActionsInactivityOutputReference;
    putInactivity(value: DesktopsDesktopPoolSessionLifecycleActionsInactivity): void;
    resetInactivity(): void;
    get inactivityInput(): DesktopsDesktopPoolSessionLifecycleActionsInactivity | undefined;
}
export interface DesktopsDesktopPoolShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#baseline_ocpu_utilization DesktopsDesktopPool#baseline_ocpu_utilization}
    */
    readonly baselineOcpuUtilization?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#memory_in_gbs DesktopsDesktopPool#memory_in_gbs}
    */
    readonly memoryInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#ocpus DesktopsDesktopPool#ocpus}
    */
    readonly ocpus?: string;
}
export declare function desktopsDesktopPoolShapeConfigToTerraform(struct?: DesktopsDesktopPoolShapeConfigOutputReference | DesktopsDesktopPoolShapeConfig): any;
export declare function desktopsDesktopPoolShapeConfigToHclTerraform(struct?: DesktopsDesktopPoolShapeConfigOutputReference | DesktopsDesktopPoolShapeConfig): any;
export declare class DesktopsDesktopPoolShapeConfigOutputReference 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(): DesktopsDesktopPoolShapeConfig | undefined;
    set internalValue(value: DesktopsDesktopPoolShapeConfig | undefined);
    private _baselineOcpuUtilization?;
    get baselineOcpuUtilization(): string;
    set baselineOcpuUtilization(value: string);
    resetBaselineOcpuUtilization(): void;
    get baselineOcpuUtilizationInput(): string | undefined;
    private _memoryInGbs?;
    get memoryInGbs(): string;
    set memoryInGbs(value: string);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): string | undefined;
    private _ocpus?;
    get ocpus(): string;
    set ocpus(value: string);
    resetOcpus(): void;
    get ocpusInput(): string | undefined;
}
export interface DesktopsDesktopPoolTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#create DesktopsDesktopPool#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#delete DesktopsDesktopPool#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#update DesktopsDesktopPool#update}
    */
    readonly update?: string;
}
export declare function desktopsDesktopPoolTimeoutsToTerraform(struct?: DesktopsDesktopPoolTimeouts | cdktf.IResolvable): any;
export declare function desktopsDesktopPoolTimeoutsToHclTerraform(struct?: DesktopsDesktopPoolTimeouts | cdktf.IResolvable): any;
export declare class DesktopsDesktopPoolTimeoutsOutputReference 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(): DesktopsDesktopPoolTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DesktopsDesktopPoolTimeouts | 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/desktops_desktop_pool oci_desktops_desktop_pool}
*/
export declare class DesktopsDesktopPool extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_desktops_desktop_pool";
    /**
    * Generates CDKTF code for importing a DesktopsDesktopPool 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 DesktopsDesktopPool to import
    * @param importFromId The id of the existing DesktopsDesktopPool that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/desktops_desktop_pool#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DesktopsDesktopPool 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/desktops_desktop_pool oci_desktops_desktop_pool} 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 DesktopsDesktopPoolConfig
    */
    constructor(scope: Construct, id: string, config: DesktopsDesktopPoolConfig);
    get activeDesktops(): number;
    private _arePrivilegedUsers?;
    get arePrivilegedUsers(): boolean | cdktf.IResolvable;
    set arePrivilegedUsers(value: boolean | cdktf.IResolvable);
    get arePrivilegedUsersInput(): boolean | cdktf.IResolvable | undefined;
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    get availabilityDomainInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _contactDetails?;
    get contactDetails(): string;
    set contactDetails(value: string);
    get contactDetailsInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    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 _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 _isStorageEnabled?;
    get isStorageEnabled(): boolean | cdktf.IResolvable;
    set isStorageEnabled(value: boolean | cdktf.IResolvable);
    get isStorageEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _maximumSize?;
    get maximumSize(): number;
    set maximumSize(value: number);
    get maximumSizeInput(): number | undefined;
    private _nsgIds?;
    get nsgIds(): string[];
    set nsgIds(value: string[]);
    resetNsgIds(): void;
    get nsgIdsInput(): string[] | undefined;
    private _shapeName?;
    get shapeName(): string;
    set shapeName(value: string);
    get shapeNameInput(): string | undefined;
    private _standbySize?;
    get standbySize(): number;
    set standbySize(value: number);
    get standbySizeInput(): number | undefined;
    get state(): string;
    private _storageBackupPolicyId?;
    get storageBackupPolicyId(): string;
    set storageBackupPolicyId(value: string);
    get storageBackupPolicyIdInput(): string | undefined;
    private _storageSizeInGbs?;
    get storageSizeInGbs(): number;
    set storageSizeInGbs(value: number);
    get storageSizeInGbsInput(): number | undefined;
    get timeCreated(): string;
    private _timeStartScheduled?;
    get timeStartScheduled(): string;
    set timeStartScheduled(value: string);
    resetTimeStartScheduled(): void;
    get timeStartScheduledInput(): string | undefined;
    private _timeStopScheduled?;
    get timeStopScheduled(): string;
    set timeStopScheduled(value: string);
    resetTimeStopScheduled(): void;
    get timeStopScheduledInput(): string | undefined;
    private _useDedicatedVmHost?;
    get useDedicatedVmHost(): string;
    set useDedicatedVmHost(value: string);
    resetUseDedicatedVmHost(): void;
    get useDedicatedVmHostInput(): string | undefined;
    private _availabilityPolicy;
    get availabilityPolicy(): DesktopsDesktopPoolAvailabilityPolicyOutputReference;
    putAvailabilityPolicy(value: DesktopsDesktopPoolAvailabilityPolicy): void;
    get availabilityPolicyInput(): DesktopsDesktopPoolAvailabilityPolicy | undefined;
    private _devicePolicy;
    get devicePolicy(): DesktopsDesktopPoolDevicePolicyOutputReference;
    putDevicePolicy(value: DesktopsDesktopPoolDevicePolicy): void;
    get devicePolicyInput(): DesktopsDesktopPoolDevicePolicy | undefined;
    private _image;
    get image(): DesktopsDesktopPoolImageOutputReference;
    putImage(value: DesktopsDesktopPoolImage): void;
    get imageInput(): DesktopsDesktopPoolImage | undefined;
    private _networkConfiguration;
    get networkConfiguration(): DesktopsDesktopPoolNetworkConfigurationOutputReference;
    putNetworkConfiguration(value: DesktopsDesktopPoolNetworkConfiguration): void;
    get networkConfigurationInput(): DesktopsDesktopPoolNetworkConfiguration | undefined;
    private _privateAccessDetails;
    get privateAccessDetails(): DesktopsDesktopPoolPrivateAccessDetailsOutputReference;
    putPrivateAccessDetails(value: DesktopsDesktopPoolPrivateAccessDetails): void;
    resetPrivateAccessDetails(): void;
    get privateAccessDetailsInput(): DesktopsDesktopPoolPrivateAccessDetails | undefined;
    private _sessionLifecycleActions;
    get sessionLifecycleActions(): DesktopsDesktopPoolSessionLifecycleActionsOutputReference;
    putSessionLifecycleActions(value: DesktopsDesktopPoolSessionLifecycleActions): void;
    resetSessionLifecycleActions(): void;
    get sessionLifecycleActionsInput(): DesktopsDesktopPoolSessionLifecycleActions | undefined;
    private _shapeConfig;
    get shapeConfig(): DesktopsDesktopPoolShapeConfigOutputReference;
    putShapeConfig(value: DesktopsDesktopPoolShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): DesktopsDesktopPoolShapeConfig | undefined;
    private _timeouts;
    get timeouts(): DesktopsDesktopPoolTimeoutsOutputReference;
    putTimeouts(value: DesktopsDesktopPoolTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DesktopsDesktopPoolTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
