import { DTOWorkspace } from "@supernova-studio/client";
import { WorkspaceProfile } from "./SDKWorkspaceProfile";
export type WorkspaceRemoteModel = Pick<DTOWorkspace, "id" | "profile" | "aiFeaturesEnabled" | "aiAskFeaturesEnabled" | "aiCustomInstruction" | "projectsEnabled" | "defaultProjectRole" | "defaultProjectAccessMode">;
export type WorkspaceTransportModel = WorkspaceRemoteModel;
export type DefaultProjectRole = "Viewer" | "Builder";
export type DefaultProjectAccessMode = "Open" | "InviteOnly" | "Unlisted";
export declare class Workspace {
    /** Unique identifier of the workspace */
    id: string;
    /** Workspace profile with all information about billing, workspace, avatars etc. */
    profile: WorkspaceProfile;
    /** Whether AI features are enabled for the workspace */
    aiFeaturesEnabled: boolean;
    /** Whether AI Ask features (Portal) are enabled for the workspace */
    aiAskFeaturesEnabled: boolean;
    /** Whether AI Projects features (Portal) are enabled for the workspace */
    projectsEnabled: boolean;
    /** Custom instructions for AI */
    aiCustomInstruction: string | null;
    /**
     * Default role for new projects in the workspace.
     */
    defaultProjectRole: DefaultProjectRole;
    /**
     * Default access mode for new projects in the workspace.
     */
    defaultProjectAccessMode: DefaultProjectAccessMode;
    constructor(model: WorkspaceRemoteModel);
    /** Constructs representation that can be used to write full object to remote */
    toRemote(): WorkspaceRemoteModel;
    /** Constructs representation that can be used to transport the instantiated object as JSON, for example for SSR <> Client use-cases. Reconstruct to class instance using `fromTransport` */
    toTransport(): WorkspaceTransportModel;
    /** Reconstructs class from the transport model */
    static fromTransport(model: WorkspaceTransportModel): Workspace;
}
