export interface MaintenanceWindow {
    /** An option to select the default or custom maintenance window. */
    type: 'SYSTEM' | 'CUSTOM';
    /** The hour for the maintenance window start (00-23). */
    startTimeHour?: number;
    /** The minutes past the hour for the maintenance window start (00-59). */
    startTimeMinute?: number;
    /** The hour for the maintenance window end (00-23). */
    endTimeHour?: number;
    /** The minutes for the maintenance window end (00-59). */
    endTimeMinute?: number;
    /** The days of the week during which the maintenance window is open. */
    daysOfTheWeek?: 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'[];
    /** The option to set the maintenance window during the device local time or Universal Coordinated Time (UTC). */
    applyTimeOf?: 'UTC' | 'DEVICE';
}
export interface CreateEnvironmentInput {
    /** The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Secure Browser, or AppStream 2.0. */
    desktopArn: string;
    /** Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a sec */
    clientToken?: string;
    /** The ID of the software set to apply. */
    desiredSoftwareSetId?: string;
    /** The URL for the identity provider login (only for environments that use AppStream 2.0). */
    desktopEndpoint?: string;
    /** A map of the key-value pairs of the tag or tags to assign to the newly created devices for this environment. */
    deviceCreationTags?: Record<string, string>;
    /** The Amazon Resource Name (ARN) of the Key Management Service key to use to encrypt the environment. */
    kmsKeyArn?: string;
    /** A specification for a time window to apply software updates. */
    maintenanceWindow?: MaintenanceWindow;
    /** The name for the environment. */
    name?: string;
    /** An option to define which software updates to apply. */
    softwareSetUpdateMode?: 'USE_LATEST' | 'USE_DESIRED';
    /** An option to define if software updates should be applied within a maintenance window. */
    softwareSetUpdateSchedule?: 'USE_MAINTENANCE_WINDOW' | 'APPLY_IMMEDIATELY';
    /** A map of the key-value pairs of the tag or tags to assign to the resource. */
    tags?: Record<string, string>;
}
export interface DeleteDeviceInput {
    /** The ID of the device to delete. */
    id: string;
    /** Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a sec */
    clientToken?: string;
}
export interface DeleteEnvironmentInput {
    /** The ID of the environment to delete. */
    id: string;
    /** Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a sec */
    clientToken?: string;
}
export interface DeregisterDeviceInput {
    /** The ID of the device to deregister. */
    id: string;
    /** Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a sec */
    clientToken?: string;
    /** The desired new status for the device. */
    targetDeviceStatus?: 'DEREGISTERED' | 'ARCHIVED';
}
export interface GetDeviceInput {
    /** The ID of the device for which to return information. */
    id: string;
}
export interface GetEnvironmentInput {
    /** The ID of the environment for which to return information. */
    id: string;
}
export interface GetSoftwareSetInput {
    /** The ID of the software set for which to return information. */
    id: string;
}
export interface ListDevicesInput {
    /** The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. This is only an upper limit. The actual number of results returned per call might be */
    maxResults?: number;
    /** If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. K */
    nextToken?: string;
}
export interface ListEnvironmentsInput {
    /** The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. This is only an upper limit. The actual number of results returned per call might be */
    maxResults?: number;
    /** If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. K */
    nextToken?: string;
}
export interface ListSoftwareSetsInput {
    /** The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. This is only an upper limit. The actual number of results returned per call might be */
    maxResults?: number;
    /** If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. K */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource for which you want to retrieve tags. */
    resourceArn: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to tag. */
    resourceArn: string;
    /** A map of the key-value pairs of the tag or tags to assign to the resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to untag. */
    resourceArn: string;
    /** The keys of the key-value pairs for the tag or tags you want to remove from the specified resource. */
    tagKeys: string[];
}
export interface UpdateDeviceInput {
    /** The ID of the device to update. */
    id: string;
    /** The ID of the software set to apply. */
    desiredSoftwareSetId?: string;
    /** The name of the device to update. */
    name?: string;
    /** An option to define if software updates should be applied within a maintenance window. */
    softwareSetUpdateSchedule?: 'USE_MAINTENANCE_WINDOW' | 'APPLY_IMMEDIATELY';
}
export interface UpdateEnvironmentInput {
    /** The ID of the environment to update. */
    id: string;
    /** The ID of the software set to apply. */
    desiredSoftwareSetId?: string;
    /** The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Secure Browser, or AppStream 2.0. */
    desktopArn?: string;
    /** The URL for the identity provider login (only for environments that use AppStream 2.0). */
    desktopEndpoint?: string;
    /** A map of the key-value pairs of the tag or tags to assign to the newly created devices for this environment. */
    deviceCreationTags?: Record<string, string>;
    /** A specification for a time window to apply software updates. */
    maintenanceWindow?: MaintenanceWindow;
    /** The name of the environment to update. */
    name?: string;
    /** An option to define which software updates to apply. */
    softwareSetUpdateMode?: 'USE_LATEST' | 'USE_DESIRED';
    /** An option to define if software updates should be applied within a maintenance window. */
    softwareSetUpdateSchedule?: 'USE_MAINTENANCE_WINDOW' | 'APPLY_IMMEDIATELY';
}
export interface UpdateSoftwareSetInput {
    /** The ID of the software set to update. */
    id: string;
    /** An option to define if the software set has been validated. */
    validationStatus: 'VALIDATED' | 'NOT_VALIDATED';
}
/** WorkSpaces Thin Client service binding for Step Functions SDK integrations. */
export declare class WorkSpacesThinClient {
    constructor();
    createEnvironment<T>(params: CreateEnvironmentInput): Promise<T>;
    deleteDevice<T>(params: DeleteDeviceInput): Promise<T>;
    deleteEnvironment<T>(params: DeleteEnvironmentInput): Promise<T>;
    deregisterDevice<T>(params: DeregisterDeviceInput): Promise<T>;
    getDevice<T>(params: GetDeviceInput): Promise<T>;
    getEnvironment<T>(params: GetEnvironmentInput): Promise<T>;
    getSoftwareSet<T>(params: GetSoftwareSetInput): Promise<T>;
    listDevices<T>(params: ListDevicesInput): Promise<T>;
    listEnvironments<T>(params: ListEnvironmentsInput): Promise<T>;
    listSoftwareSets<T>(params: ListSoftwareSetsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateDevice<T>(params: UpdateDeviceInput): Promise<T>;
    updateEnvironment<T>(params: UpdateEnvironmentInput): Promise<T>;
    updateSoftwareSet<T>(params: UpdateSoftwareSetInput): Promise<T>;
}
//# sourceMappingURL=WorkSpacesThinClient.d.ts.map