import type { RemoteCustomerRole } from "./remote-profile.js"; export type RemoteWorkspaceMember = { membershipId: string; userId: string; email: string; displayName: string | null; role: RemoteCustomerRole; /** Exact server timestamp, including microseconds; never rounded to Date. */ createdAt: string; }; export type RemoteWorkspaceMembersPage = { organizationId: string; members: RemoteWorkspaceMember[]; nextCursor: string | null; }; export type RemoteWorkspaceMembersOptions = { limit?: number; cursor?: string; }; export type SetRemoteWorkspaceMemberRole = { role: RemoteCustomerRole; expectedRole: RemoteCustomerRole; }; export type RemoveRemoteWorkspaceMember = { expectedRole: RemoteCustomerRole; }; export type RemoteWorkspaceMemberRoleResult = { organizationId: string; member: RemoteWorkspaceMember; changed: boolean; }; export type RemoteWorkspaceMemberRemovalResult = { organizationId: string; membershipId: string; removed: true; alreadyRemoved: boolean; }; /** Pagination is transport input, not a workspace or authority selector. */ export declare function workspaceMembersQuery(options?: RemoteWorkspaceMembersOptions): string; export declare class WorkspaceMemberInputError extends Error { constructor(); } /** Snapshot transport input before verification awaits; authority stays on the server. */ export declare function workspaceMemberRoleInput(membershipId: string, input: SetRemoteWorkspaceMemberRole): { membershipId: string; body: { role: RemoteCustomerRole; expectedRole: RemoteCustomerRole; }; }; export declare function workspaceMemberRemovalInput(membershipId: string, input: RemoveRemoteWorkspaceMember): { membershipId: string; body: { expectedRole: RemoteCustomerRole; }; }; export declare const invalidMemberResult = "The server returned an invalid workspace member result. Refresh the roster before another action."; export declare function parseWorkspaceMemberRoleResult(value: unknown, membershipId: string, role: RemoteCustomerRole): RemoteWorkspaceMemberRoleResult; export declare function parseWorkspaceMemberRemovalResult(value: unknown, membershipId: string): RemoteWorkspaceMemberRemovalResult; /** Only known code/status pairs become public messages; arbitrary server text stays private. */ export declare const workspaceMemberFailures: { readonly INVALID_REQUEST: readonly [400, "Provide the exact membership role parameters."]; readonly ACCOUNT_UNAVAILABLE: readonly [403, "Account is unavailable."]; readonly INTERACTIVE_SESSION_REQUIRED: readonly [403, "Fresh interactive sign-in is required."]; readonly WORKSPACE_ADMIN_REQUIRED: readonly [403, "A current workspace owner or admin is required."]; readonly MEMBERSHIP_ACTION_FORBIDDEN: readonly [403, "Your current workspace role cannot perform this membership action."]; readonly MEMBERSHIP_NOT_FOUND: readonly [404, "Membership was not found in the current workspace."]; readonly SELF_REMOVAL_UNAVAILABLE: readonly [409, "Leaving your own workspace is not available through member removal."]; readonly MEMBERSHIP_ROLE_CHANGED: readonly [409, "The member role changed. Refresh the roster before another action."]; readonly LAST_OWNER_REQUIRED: readonly [409, "The workspace must retain at least one active owner."]; readonly MEMBERSHIP_BUSY: readonly [503, "Membership is busy. Refresh the roster before another action."]; }; export type RemoteWorkspaceMemberErrorCode = keyof typeof workspaceMemberFailures; export declare function workspaceMemberFailure(value: unknown, status: number): RemoteWorkspaceMemberErrorCode | null; /** Project the documented roster only; auth metadata and other fields stay out. */ export declare function parseWorkspaceMembersPage(value: unknown): RemoteWorkspaceMembersPage;