import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { EnvironmentReference, IEnvironmentRef } from "../../interfaces/generated/aws-workspacesthinclient-interfaces.generated";
/**
 * Describes an environment.
 *
 * @cloudformationResource AWS::WorkSpacesThinClient::Environment
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html
 */
export declare class CfnEnvironment extends cdk.CfnResource implements cdk.IInspectable, IEnvironmentRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnEnvironment from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnEnvironment;
    /**
     * Checks whether the given object is a CfnEnvironment
     */
    static isCfnEnvironment(x: any): x is CfnEnvironment;
    /**
     * Creates a new IEnvironmentRef from an ARN
     */
    static fromEnvironmentArn(scope: constructs.Construct, id: string, arn: string): IEnvironmentRef;
    /**
     * Creates a new IEnvironmentRef from a environmentId
     */
    static fromEnvironmentId(scope: constructs.Construct, id: string, environmentId: string): IEnvironmentRef;
    static arnForEnvironment(resource: IEnvironmentRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * The ID of the software set to apply.
     */
    private _desiredSoftwareSetId?;
    /**
     * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Secure Browser, or WorkSpaces Applications.
     */
    private _desktopArn;
    /**
     * The URL for the identity provider login (only for environments that use WorkSpaces Applications).
     */
    private _desktopEndpoint?;
    /**
     * An array of key-value pairs to apply to the newly created devices for this environment.
     */
    private _deviceCreationTags?;
    /**
     * The Amazon Resource Name (ARN) of the AWS Key Management Service key used to encrypt the environment.
     */
    private _kmsKeyArn?;
    /**
     * A specification for a time window to apply software updates.
     */
    private _maintenanceWindow?;
    /**
     * The name of the environment.
     */
    private _name?;
    /**
     * An option to define which software updates to apply.
     */
    private _softwareSetUpdateMode?;
    /**
     * An option to define if software updates should be applied within a maintenance window.
     */
    private _softwareSetUpdateSchedule?;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    private _tags?;
    protected readonly cfnPropertyNames: Record<string, string>;
    /**
     * Create a new `AWS::WorkSpacesThinClient::Environment`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnEnvironmentProps);
    get environmentRef(): EnvironmentReference;
    /**
     * The ID of the software set to apply.
     */
    get desiredSoftwareSetId(): string | undefined;
    /**
     * The ID of the software set to apply.
     */
    set desiredSoftwareSetId(value: string | undefined);
    /**
     * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Secure Browser, or WorkSpaces Applications.
     */
    get desktopArn(): string;
    /**
     * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Secure Browser, or WorkSpaces Applications.
     */
    set desktopArn(value: string);
    /**
     * The URL for the identity provider login (only for environments that use WorkSpaces Applications).
     */
    get desktopEndpoint(): string | undefined;
    /**
     * The URL for the identity provider login (only for environments that use WorkSpaces Applications).
     */
    set desktopEndpoint(value: string | undefined);
    /**
     * An array of key-value pairs to apply to the newly created devices for this environment.
     */
    get deviceCreationTags(): Array<cdk.CfnTag | cdk.IResolvable> | cdk.IResolvable | undefined;
    /**
     * An array of key-value pairs to apply to the newly created devices for this environment.
     */
    set deviceCreationTags(value: Array<cdk.CfnTag | cdk.IResolvable> | cdk.IResolvable | undefined);
    /**
     * The Amazon Resource Name (ARN) of the AWS Key Management Service key used to encrypt the environment.
     */
    get kmsKeyArn(): string | undefined;
    /**
     * The Amazon Resource Name (ARN) of the AWS Key Management Service key used to encrypt the environment.
     */
    set kmsKeyArn(value: string | undefined);
    /**
     * A specification for a time window to apply software updates.
     */
    get maintenanceWindow(): cdk.IResolvable | CfnEnvironment.MaintenanceWindowProperty | undefined;
    /**
     * A specification for a time window to apply software updates.
     */
    set maintenanceWindow(value: cdk.IResolvable | CfnEnvironment.MaintenanceWindowProperty | undefined);
    /**
     * The name of the environment.
     */
    get name(): string | undefined;
    /**
     * The name of the environment.
     */
    set name(value: string | undefined);
    /**
     * An option to define which software updates to apply.
     */
    get softwareSetUpdateMode(): string | undefined;
    /**
     * An option to define which software updates to apply.
     */
    set softwareSetUpdateMode(value: string | undefined);
    /**
     * An option to define if software updates should be applied within a maintenance window.
     */
    get softwareSetUpdateSchedule(): string | undefined;
    /**
     * An option to define if software updates should be applied within a maintenance window.
     */
    set softwareSetUpdateSchedule(value: string | undefined);
    /**
     * An array of key-value pairs to apply to this resource.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The activation code to register a device to the environment.
     *
     * @cloudformationAttribute ActivationCode
     */
    get attrActivationCode(): string;
    /**
     * The Amazon Resource Name (ARN) of the environment.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The timestamp of when the environment was created.
     *
     * @cloudformationAttribute CreatedAt
     */
    get attrCreatedAt(): string;
    /**
     * The type of streaming desktop for the environment.
     *
     * @cloudformationAttribute DesktopType
     */
    get attrDesktopType(): string;
    /**
     * Unique identifier of the environment.
     *
     * @cloudformationAttribute Id
     */
    get attrId(): string;
    /**
     * The ID of the software set that is pending to be installed.
     *
     * @cloudformationAttribute PendingSoftwareSetId
     */
    get attrPendingSoftwareSetId(): string;
    /**
     * The version of the software set that is pending to be installed.
     *
     * @cloudformationAttribute PendingSoftwareSetVersion
     */
    get attrPendingSoftwareSetVersion(): string;
    /**
     * The number of devices registered to the environment.
     *
     * @cloudformationAttribute RegisteredDevicesCount
     */
    get attrRegisteredDevicesCount(): number;
    /**
     * Describes if the software currently installed on all devices in the environment is a supported version.
     *
     * @cloudformationAttribute SoftwareSetComplianceStatus
     */
    get attrSoftwareSetComplianceStatus(): string;
    /**
     * The timestamp of when the device was updated.
     *
     * @cloudformationAttribute UpdatedAt
     */
    get attrUpdatedAt(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnEnvironment {
    /**
     * Describes the maintenance window for a thin client device.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html
     */
    interface MaintenanceWindowProperty {
        /**
         * The option to set the maintenance window during the device local time or Universal Coordinated Time (UTC).
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-applytimeof
         */
        readonly applyTimeOf?: string;
        /**
         * The days of the week during which the maintenance window is open.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-daysoftheweek
         */
        readonly daysOfTheWeek?: Array<string>;
        /**
         * The hour for the maintenance window end ( `00` - `23` ).
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-endtimehour
         */
        readonly endTimeHour?: number;
        /**
         * The minutes for the maintenance window end ( `00` - `59` ).
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-endtimeminute
         */
        readonly endTimeMinute?: number;
        /**
         * The hour for the maintenance window start ( `00` - `23` ).
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-starttimehour
         */
        readonly startTimeHour?: number;
        /**
         * The minutes past the hour for the maintenance window start ( `00` - `59` ).
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-starttimeminute
         */
        readonly startTimeMinute?: number;
        /**
         * An option to select the default or custom maintenance window.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspacesthinclient-environment-maintenancewindow.html#cfn-workspacesthinclient-environment-maintenancewindow-type
         */
        readonly type: string;
    }
}
/**
 * Properties for defining a `CfnEnvironment`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html
 */
export interface CfnEnvironmentProps {
    /**
     * The ID of the software set to apply.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desiredsoftwaresetid
     */
    readonly desiredSoftwareSetId?: string;
    /**
     * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Secure Browser, or WorkSpaces Applications.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktoparn
     */
    readonly desktopArn: string;
    /**
     * The URL for the identity provider login (only for environments that use WorkSpaces Applications).
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktopendpoint
     */
    readonly desktopEndpoint?: string;
    /**
     * An array of key-value pairs to apply to the newly created devices for this environment.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-devicecreationtags
     */
    readonly deviceCreationTags?: Array<cdk.CfnTag | cdk.IResolvable> | cdk.IResolvable;
    /**
     * The Amazon Resource Name (ARN) of the AWS Key Management Service key used to encrypt the environment.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-kmskeyarn
     */
    readonly kmsKeyArn?: string;
    /**
     * A specification for a time window to apply software updates.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-maintenancewindow
     */
    readonly maintenanceWindow?: cdk.IResolvable | CfnEnvironment.MaintenanceWindowProperty;
    /**
     * The name of the environment.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-name
     */
    readonly name?: string;
    /**
     * An option to define which software updates to apply.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-softwaresetupdatemode
     */
    readonly softwareSetUpdateMode?: string;
    /**
     * An option to define if software updates should be applied within a maintenance window.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-softwaresetupdateschedule
     */
    readonly softwareSetUpdateSchedule?: string;
    /**
     * An array of key-value pairs to apply to this resource.
     *
     * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
export type { IEnvironmentRef, EnvironmentReference };
