import type { RemoteCurrentWorkspace, RemoteCustomerProfile, RemoteCustomerRole } from "./remote-profile.js"; /** An observed identity and exact membership incarnation, never a slug or cached role. */ export type RemoteWorkspaceContext = Readonly<{ userId: string; membershipId: string; }>; export type RemoteAccountWorkspace = { membershipId: string; organization: RemoteCurrentWorkspace; role: RemoteCustomerRole; current: boolean; }; export type RemoteAccountWorkspaces = { workspaces: RemoteAccountWorkspace[]; }; export type RemoteWorkspaceIdentity = { user: RemoteCustomerProfile & { membershipId: string; }; organization: RemoteCurrentWorkspace; }; /** Contains a secret. SDK callers own its lifetime; never print or persist it implicitly. */ export type RemoteWorkspaceSession = RemoteWorkspaceIdentity & { token: string; }; export type RemoteAccountWorkspaceDiscovery = RemoteAccountWorkspaces & { userId: string; }; export declare const invalidWorkspaceResult = "The server returned an invalid workspace selection result."; export declare class WorkspaceContextInputError extends Error { constructor(); } export declare class WorkspaceIdentityMismatchError extends Error { constructor(); } export declare function workspaceExpectedUserId(value: unknown): string; /** Copy before the first await: caller mutations cannot retarget verification. */ export declare function workspaceContext(value: unknown): RemoteWorkspaceContext; /** Project documented fields only; server extras cannot reach display metadata. */ export declare function parseAccountWorkspaces(value: unknown): RemoteAccountWorkspaces; export declare function parseWorkspaceIdentity(value: unknown, expectedUserId: string): RemoteWorkspaceIdentity; /** The service still verifies the token; response metadata never grants authority. */ export declare function parseWorkspaceSession(value: unknown, expected: RemoteWorkspaceContext): RemoteWorkspaceSession; /** Fresh verification does not require newer workspace metadata from default-only servers. */ export declare function parseWorkspaceLogin(value: unknown, expectedUserId?: string): { token: string; userId: string; }; export declare const workspaceSelectionFailures: { readonly INVALID_WORKSPACE_SELECTION: readonly [400, "Provide only the exact membership ID from your workspace list."]; readonly SESSION_EXPIRED: readonly [401, "Sign in again before selecting a workspace."]; readonly ACCOUNT_UNAVAILABLE: readonly [403, "Account is unavailable."]; readonly INTERACTIVE_SESSION_REQUIRED: readonly [403, "Interactive sign-in is required to select a workspace."]; readonly WORKSPACE_UNAVAILABLE: readonly [404, "Workspace is unavailable. Refresh your workspace list."]; readonly WORKSPACE_BUSY: readonly [503, "Workspace is busy. Refresh before retrying."]; }; export type RemoteWorkspaceSelectionErrorCode = keyof typeof workspaceSelectionFailures; export declare function workspaceSelectionFailure(value: unknown, status: number): RemoteWorkspaceSelectionErrorCode | null;