import * as core from "@terrascript/core";
export interface WorkspaceCreationPropertiesArgs extends core.SchemaArgs {
    customSecurityGroupId?: string | core.StringOut;
    defaultOu?: string | core.StringOut;
    enableInternetAccess?: boolean | core.BooleanOut;
    enableMaintenanceMode?: boolean | core.BooleanOut;
    userEnabledAsLocalAdministrator?: boolean | core.BooleanOut;
}
export declare class WorkspaceCreationProperties extends core.Schema<WorkspaceCreationPropertiesArgs> {
    customSecurityGroupId?: string | core.StringOut;
    defaultOu?: string | core.StringOut;
    enableInternetAccess?: boolean | core.BooleanOut;
    enableMaintenanceMode?: boolean | core.BooleanOut;
    userEnabledAsLocalAdministrator?: boolean | core.BooleanOut;
}
export interface SelfServicePermissionsArgs extends core.SchemaArgs {
    changeComputeType?: boolean | core.BooleanOut;
    increaseVolumeSize?: boolean | core.BooleanOut;
    rebuildWorkspace?: boolean | core.BooleanOut;
    restartWorkspace?: boolean | core.BooleanOut;
    switchRunningMode?: boolean | core.BooleanOut;
}
export declare class SelfServicePermissions extends core.Schema<SelfServicePermissionsArgs> {
    changeComputeType?: boolean | core.BooleanOut;
    increaseVolumeSize?: boolean | core.BooleanOut;
    rebuildWorkspace?: boolean | core.BooleanOut;
    restartWorkspace?: boolean | core.BooleanOut;
    switchRunningMode?: boolean | core.BooleanOut;
}
export interface WorkspaceAccessPropertiesArgs extends core.SchemaArgs {
    deviceTypeAndroid?: string | core.StringOut;
    deviceTypeChromeos?: string | core.StringOut;
    deviceTypeIos?: string | core.StringOut;
    deviceTypeLinux?: string | core.StringOut;
    deviceTypeOsx?: string | core.StringOut;
    deviceTypeWeb?: string | core.StringOut;
    deviceTypeWindows?: string | core.StringOut;
    deviceTypeZeroclient?: string | core.StringOut;
}
export declare class WorkspaceAccessProperties extends core.Schema<WorkspaceAccessPropertiesArgs> {
    deviceTypeAndroid?: string | core.StringOut;
    deviceTypeChromeos?: string | core.StringOut;
    deviceTypeIos?: string | core.StringOut;
    deviceTypeLinux?: string | core.StringOut;
    deviceTypeOsx?: string | core.StringOut;
    deviceTypeWeb?: string | core.StringOut;
    deviceTypeWindows?: string | core.StringOut;
    deviceTypeZeroclient?: string | core.StringOut;
}
export interface DirectoryArgs extends core.ResourceArgs {
    directoryId: string | core.StringOut;
    ipGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    selfServicePermissions?: SelfServicePermissions;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    workspaceAccessProperties?: WorkspaceAccessProperties;
    workspaceCreationProperties?: WorkspaceCreationProperties;
}
export declare class Directory extends core.Resource<DirectoryArgs> {
    alias: string | core.StringOut;
    customerUserName: string | core.StringOut;
    directoryId: string | core.StringOut;
    directoryName: string | core.StringOut;
    directoryType: string | core.StringOut;
    dnsIpAddresses: core.Array<string> | core.ArrayOut<core.StringOut>;
    iamRoleId: string | core.StringOut;
    id: string | core.StringOut;
    ipGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    registrationCode: string | core.StringOut;
    selfServicePermissions?: SelfServicePermissions;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    workspaceAccessProperties?: WorkspaceAccessProperties;
    workspaceCreationProperties?: WorkspaceCreationProperties;
    workspaceSecurityGroupId: string | core.StringOut;
    constructor(name: string, args?: DirectoryArgs);
    getNamespace(): string;
}
//# sourceMappingURL=directory.d.ts.map