import { JsonObject, Message } from "@bufbuild/protobuf"; import { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import { Timestamp } from "@bufbuild/protobuf/wkt"; declare namespace whiteboard_pb_d_exports { export { ArchiveBoardRequest, ArchiveBoardRequestSchema, ArchiveBoardResponse, ArchiveBoardResponseSchema, Board, BoardAccess, BoardAccessSchema, BoardAclEntry, BoardAclEntrySchema, BoardAclSubjectType, BoardAclSubjectTypeSchema, BoardAudience, BoardAudienceSchema, BoardListItem, BoardListItemSchema, BoardPermissions, BoardPermissionsSchema, BoardRole, BoardRoleSchema, BoardSchema, CreateBoardRequest, CreateBoardRequestSchema, CreateBoardResponse, CreateBoardResponseSchema, GetBoardRequest, GetBoardRequestSchema, GetBoardResponse, GetBoardResponseSchema, ListBoardsRequest, ListBoardsRequestSchema, ListBoardsResponse, ListBoardsResponseSchema, MintJoinTokenRequest, MintJoinTokenRequestSchema, MintJoinTokenResponse, MintJoinTokenResponseSchema, PresencePayload, PresencePayloadSchema, UpdateBoardAclRequest, UpdateBoardAclRequestSchema, UpdateBoardAclResponse, UpdateBoardAclResponseSchema, UpdateBoardRequest, UpdateBoardRequestSchema, UpdateBoardResponse, UpdateBoardResponseSchema, WhiteboardService, file_collab_v1_whiteboard }; } /** * Describes the file collab/v1/whiteboard.proto. */ declare const file_collab_v1_whiteboard: GenFile; /** * BoardAclEntry grants a role to one explicit ACL subject. * * @generated from message collab.v1.BoardAclEntry */ type BoardAclEntry = Message<"collab.v1.BoardAclEntry"> & { /** * Subject domain for the ACL row. * * @generated from field: collab.v1.BoardAclSubjectType subject_type = 1; */ subjectType: BoardAclSubjectType; /** * Subject public ID. For USER_SUBJECT this is an account ID; for GROUP_SUBJECT this is a group ID. * * @generated from field: fixed64 subject_id = 2; */ subjectId: bigint; /** * Granted role for the subject. Only VIEWER and EDITOR are valid ACL roles. * * @generated from field: collab.v1.BoardRole role = 3; */ role: BoardRole; }; /** * Describes the message collab.v1.BoardAclEntry. * Use `create(BoardAclEntrySchema)` to create a new message. */ declare const BoardAclEntrySchema: GenMessage; /** * BoardPermissions is the resolved permission set for the caller. * * @generated from message collab.v1.BoardPermissions */ type BoardPermissions = Message<"collab.v1.BoardPermissions"> & { /** * Whether the caller may view metadata and join the room. * * @generated from field: bool can_view = 1; */ canView: boolean; /** * Whether the caller may edit board content in the room. * * @generated from field: bool can_edit = 2; */ canEdit: boolean; /** * Whether the caller may manage sharing and board settings. * * @generated from field: bool can_manage = 3; */ canManage: boolean; }; /** * Describes the message collab.v1.BoardPermissions. * Use `create(BoardPermissionsSchema)` to create a new message. */ declare const BoardPermissionsSchema: GenMessage; /** * BoardAccess is the resolved caller access for a board. * Access resolution prefers owner, explicit user ACL, explicit group ACL, then audience policy. * * @generated from message collab.v1.BoardAccess */ type BoardAccess = Message<"collab.v1.BoardAccess"> & { /** * Highest resolved role for the caller. * * @generated from field: collab.v1.BoardRole role = 1; */ role: BoardRole; /** * Expanded permission flags for the caller. * * @generated from field: collab.v1.BoardPermissions permissions = 2; */ permissions?: BoardPermissions | undefined; }; /** * Describes the message collab.v1.BoardAccess. * Use `create(BoardAccessSchema)` to create a new message. */ declare const BoardAccessSchema: GenMessage; /** * Board is the persisted metadata for a collaborative whiteboard. * * @generated from message collab.v1.Board */ type Board = Message<"collab.v1.Board"> & { /** * Stable board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; /** * Board owner account public ID. * * @generated from field: fixed64 owner_account_id = 2; */ ownerAccountId: bigint; /** * Human-readable board title, max 200 characters and 400 bytes. * * @generated from field: string title = 3; */ title: string; /** * Default audience policy used when no explicit ACL entry matches. * * @generated from field: collab.v1.BoardAudience audience = 4; */ audience: BoardAudience; /** * Default role granted by the audience policy. This is always VIEWER or EDITOR. * * @generated from field: collab.v1.BoardRole default_role = 5; */ defaultRole: BoardRole; /** * Monotonic access version incremented when audience, default role, ACL, or archive state changes. * * @generated from field: uint64 access_version = 6; */ accessVersion: bigint; /** * Optional initial document snapshot as a JSON object. * * @generated from field: google.protobuf.Struct initial_snapshot = 7; */ initialSnapshot?: JsonObject | undefined; /** * Creation time in UTC. * * @generated from field: google.protobuf.Timestamp created_at = 8; */ createdAt?: Timestamp | undefined; /** * Last update time in UTC. * * @generated from field: google.protobuf.Timestamp updated_at = 9; */ updatedAt?: Timestamp | undefined; /** * Archive time in UTC. Unset when the board is active. * * @generated from field: optional google.protobuf.Timestamp archived_at = 10; */ archivedAt?: Timestamp | undefined; }; /** * Describes the message collab.v1.Board. * Use `create(BoardSchema)` to create a new message. */ declare const BoardSchema: GenMessage; /** * BoardListItem is one visible board plus the caller's resolved access. * * @generated from message collab.v1.BoardListItem */ type BoardListItem = Message<"collab.v1.BoardListItem"> & { /** * Board metadata. * * @generated from field: collab.v1.Board board = 1; */ board?: Board | undefined; /** * Resolved access for the current caller. * * @generated from field: collab.v1.BoardAccess access = 2; */ access?: BoardAccess | undefined; }; /** * Describes the message collab.v1.BoardListItem. * Use `create(BoardListItemSchema)` to create a new message. */ declare const BoardListItemSchema: GenMessage; /** * PresencePayload is a lightweight identity payload the client can reuse locally. * * @generated from message collab.v1.PresencePayload */ type PresencePayload = Message<"collab.v1.PresencePayload"> & { /** * Caller account public ID. * * @generated from field: fixed64 account_id = 1; */ accountId: bigint; /** * Resolved board role for this join. * * @generated from field: collab.v1.BoardRole role = 2; */ role: BoardRole; }; /** * Describes the message collab.v1.PresencePayload. * Use `create(PresencePayloadSchema)` to create a new message. */ declare const PresencePayloadSchema: GenMessage; /** * CreateBoardRequest creates a new board owned by the caller. * * @generated from message collab.v1.CreateBoardRequest */ type CreateBoardRequest = Message<"collab.v1.CreateBoardRequest"> & { /** * Board title, max 200 characters and 400 bytes. * * @generated from field: string title = 1; */ title: string; /** * Initial audience policy for the board. * * @generated from field: collab.v1.BoardAudience audience = 2; */ audience: BoardAudience; /** * Default audience role for callers admitted by PUBLIC or FOLLOWERS audience policy. * * @generated from field: collab.v1.BoardRole default_role = 3; */ defaultRole: BoardRole; /** * Optional explicit ACL entries created with the board, max 256 entries. * * @generated from field: repeated collab.v1.BoardAclEntry acl_entries = 4; */ aclEntries: BoardAclEntry[]; /** * Optional initial document snapshot as a JSON object. * * @generated from field: google.protobuf.Struct initial_snapshot = 5; */ initialSnapshot?: JsonObject | undefined; }; /** * Describes the message collab.v1.CreateBoardRequest. * Use `create(CreateBoardRequestSchema)` to create a new message. */ declare const CreateBoardRequestSchema: GenMessage; /** * CreateBoardResponse returns the created board and resolved caller access. * * @generated from message collab.v1.CreateBoardResponse */ type CreateBoardResponse = Message<"collab.v1.CreateBoardResponse"> & { /** * Created board metadata. * * @generated from field: collab.v1.Board board = 1; */ board?: Board | undefined; /** * Stored explicit ACL entries ordered by creation time, subject type, then subject ID. * * @generated from field: repeated collab.v1.BoardAclEntry acl_entries = 2; */ aclEntries: BoardAclEntry[]; /** * Resolved caller access for the board. * * @generated from field: collab.v1.BoardAccess access = 3; */ access?: BoardAccess | undefined; }; /** * Describes the message collab.v1.CreateBoardResponse. * Use `create(CreateBoardResponseSchema)` to create a new message. */ declare const CreateBoardResponseSchema: GenMessage; /** * GetBoardRequest loads one board by ID. * * @generated from message collab.v1.GetBoardRequest */ type GetBoardRequest = Message<"collab.v1.GetBoardRequest"> & { /** * Board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; }; /** * Describes the message collab.v1.GetBoardRequest. * Use `create(GetBoardRequestSchema)` to create a new message. */ declare const GetBoardRequestSchema: GenMessage; /** * GetBoardResponse returns one visible board. * * @generated from message collab.v1.GetBoardResponse */ type GetBoardResponse = Message<"collab.v1.GetBoardResponse"> & { /** * Board metadata. * * @generated from field: collab.v1.Board board = 1; */ board?: Board | undefined; /** * Explicit ACL entries ordered by creation time, subject type, then subject ID. Returned only for callers who can manage the board. * * @generated from field: repeated collab.v1.BoardAclEntry acl_entries = 2; */ aclEntries: BoardAclEntry[]; /** * Resolved caller access. * * @generated from field: collab.v1.BoardAccess access = 3; */ access?: BoardAccess | undefined; }; /** * Describes the message collab.v1.GetBoardResponse. * Use `create(GetBoardResponseSchema)` to create a new message. */ declare const GetBoardResponseSchema: GenMessage; /** * ListBoardsRequest lists boards visible to the caller. * * @generated from message collab.v1.ListBoardsRequest */ type ListBoardsRequest = Message<"collab.v1.ListBoardsRequest"> & { /** * When true, include archived boards in the response. * * @generated from field: bool include_archived = 1; */ includeArchived: boolean; /** * Maximum number of boards to return. Defaults to 100 when omitted; maximum * is 500. * * @generated from field: uint32 limit = 2; */ limit: number; /** * Opaque keyset cursor from a previous response. The cursor is exclusive and * bound to the authenticated caller, archive filter, and newest-updated sort * order. * * @generated from field: string page_token = 3; */ pageToken: string; }; /** * Describes the message collab.v1.ListBoardsRequest. * Use `create(ListBoardsRequestSchema)` to create a new message. */ declare const ListBoardsRequestSchema: GenMessage; /** * ListBoardsResponse lists boards visible to the caller in most-recently-updated order. * * @generated from message collab.v1.ListBoardsResponse */ type ListBoardsResponse = Message<"collab.v1.ListBoardsResponse"> & { /** * Visible boards ordered by updated_at descending, then board_id descending. * * @generated from field: repeated collab.v1.BoardListItem boards = 1; */ boards: BoardListItem[]; /** * Opaque cursor for the next page. Empty when no more results exist. * * @generated from field: string next_page_token = 2; */ nextPageToken: string; }; /** * Describes the message collab.v1.ListBoardsResponse. * Use `create(ListBoardsResponseSchema)` to create a new message. */ declare const ListBoardsResponseSchema: GenMessage; /** * UpdateBoardRequest updates mutable board metadata. * * @generated from message collab.v1.UpdateBoardRequest */ type UpdateBoardRequest = Message<"collab.v1.UpdateBoardRequest"> & { /** * Board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; /** * New board title, max 200 characters and 400 bytes. When unset, the title is unchanged. * * @generated from field: optional string title = 2; */ title?: string | undefined; /** * New audience policy. When unset, the audience is unchanged. * * @generated from field: optional collab.v1.BoardAudience audience = 3; */ audience?: BoardAudience | undefined; /** * New default audience role for PUBLIC or FOLLOWERS access. When unset, the role is unchanged. * * @generated from field: optional collab.v1.BoardRole default_role = 4; */ defaultRole?: BoardRole | undefined; /** * New initial snapshot as a JSON object. When unset, the snapshot is unchanged. * * @generated from field: optional google.protobuf.Struct initial_snapshot = 5; */ initialSnapshot?: JsonObject | undefined; }; /** * Describes the message collab.v1.UpdateBoardRequest. * Use `create(UpdateBoardRequestSchema)` to create a new message. */ declare const UpdateBoardRequestSchema: GenMessage; /** * UpdateBoardResponse returns the updated board. * * @generated from message collab.v1.UpdateBoardResponse */ type UpdateBoardResponse = Message<"collab.v1.UpdateBoardResponse"> & { /** * Updated board metadata. * * @generated from field: collab.v1.Board board = 1; */ board?: Board | undefined; /** * Explicit ACL entries ordered by creation time, subject type, then subject ID. Returned only for callers who can manage the board. * * @generated from field: repeated collab.v1.BoardAclEntry acl_entries = 2; */ aclEntries: BoardAclEntry[]; /** * Resolved caller access. * * @generated from field: collab.v1.BoardAccess access = 3; */ access?: BoardAccess | undefined; }; /** * Describes the message collab.v1.UpdateBoardResponse. * Use `create(UpdateBoardResponseSchema)` to create a new message. */ declare const UpdateBoardResponseSchema: GenMessage; /** * UpdateBoardAclRequest fully replaces the explicit ACL for a board. * * @generated from message collab.v1.UpdateBoardAclRequest */ type UpdateBoardAclRequest = Message<"collab.v1.UpdateBoardAclRequest"> & { /** * Board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; /** * Full replacement ACL set for the board, max 256 entries. Existing ACL entries are replaced atomically. * * @generated from field: repeated collab.v1.BoardAclEntry acl_entries = 2; */ aclEntries: BoardAclEntry[]; }; /** * Describes the message collab.v1.UpdateBoardAclRequest. * Use `create(UpdateBoardAclRequestSchema)` to create a new message. */ declare const UpdateBoardAclRequestSchema: GenMessage; /** * UpdateBoardAclResponse returns the updated board and ACL state. * * @generated from message collab.v1.UpdateBoardAclResponse */ type UpdateBoardAclResponse = Message<"collab.v1.UpdateBoardAclResponse"> & { /** * Updated board metadata. * * @generated from field: collab.v1.Board board = 1; */ board?: Board | undefined; /** * Stored ACL entries after replacement, ordered by creation time, subject type, then subject ID. * * @generated from field: repeated collab.v1.BoardAclEntry acl_entries = 2; */ aclEntries: BoardAclEntry[]; /** * Resolved caller access. * * @generated from field: collab.v1.BoardAccess access = 3; */ access?: BoardAccess | undefined; }; /** * Describes the message collab.v1.UpdateBoardAclResponse. * Use `create(UpdateBoardAclResponseSchema)` to create a new message. */ declare const UpdateBoardAclResponseSchema: GenMessage; /** * ArchiveBoardRequest archives or unarchives a board. * * @generated from message collab.v1.ArchiveBoardRequest */ type ArchiveBoardRequest = Message<"collab.v1.ArchiveBoardRequest"> & { /** * Board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; /** * Target archive state. True archives the board, false restores it. * * @generated from field: bool archived = 2; */ archived: boolean; }; /** * Describes the message collab.v1.ArchiveBoardRequest. * Use `create(ArchiveBoardRequestSchema)` to create a new message. */ declare const ArchiveBoardRequestSchema: GenMessage; /** * ArchiveBoardResponse returns the updated archive state. * * @generated from message collab.v1.ArchiveBoardResponse */ type ArchiveBoardResponse = Message<"collab.v1.ArchiveBoardResponse"> & { /** * Updated board metadata. * * @generated from field: collab.v1.Board board = 1; */ board?: Board | undefined; /** * Resolved caller access. * * @generated from field: collab.v1.BoardAccess access = 2; */ access?: BoardAccess | undefined; }; /** * Describes the message collab.v1.ArchiveBoardResponse. * Use `create(ArchiveBoardResponseSchema)` to create a new message. */ declare const ArchiveBoardResponseSchema: GenMessage; /** * MintJoinTokenRequest resolves access and mints a short-lived room admission token. * * @generated from message collab.v1.MintJoinTokenRequest */ type MintJoinTokenRequest = Message<"collab.v1.MintJoinTokenRequest"> & { /** * Board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; }; /** * Describes the message collab.v1.MintJoinTokenRequest. * Use `create(MintJoinTokenRequestSchema)` to create a new message. */ declare const MintJoinTokenRequestSchema: GenMessage; /** * MintJoinTokenResponse returns the signed room admission contract for the caller. * * @generated from message collab.v1.MintJoinTokenResponse */ type MintJoinTokenResponse = Message<"collab.v1.MintJoinTokenResponse"> & { /** * Board identifier as a UUID string. * * @generated from field: string board_id = 1; */ boardId: string; /** * Resolved caller access for the board. * * @generated from field: collab.v1.BoardAccess access = 2; */ access?: BoardAccess | undefined; /** * Token expiry time in UTC. Join tokens expire 5 minutes after issuance. * * @generated from field: google.protobuf.Timestamp expires_at = 3; */ expiresAt?: Timestamp | undefined; /** * Signed short-lived room admission token. * * @generated from field: string token = 4; */ token: string; /** * Room identifier the client should join. This is the board ID. * * @generated from field: string room_id = 5; */ roomId: string; /** * Unique connection identifier embedded in the token. * * @generated from field: string connection_id = 6; */ connectionId: string; /** * Realtime room URL the client should connect to. * * @generated from field: string socket_path = 7; */ socketPath: string; /** * Lightweight local presence payload for the caller. * * @generated from field: collab.v1.PresencePayload presence = 8; */ presence?: PresencePayload | undefined; /** * Access version embedded in the token; clients must refresh when the board access version changes. * * @generated from field: uint64 access_version = 9; */ accessVersion: bigint; }; /** * Describes the message collab.v1.MintJoinTokenResponse. * Use `create(MintJoinTokenResponseSchema)` to create a new message. */ declare const MintJoinTokenResponseSchema: GenMessage; /** * BoardAudience controls which audience rule applies when no explicit ACL entry matches. * * @generated from enum collab.v1.BoardAudience */ declare enum BoardAudience { /** * Audience is not specified. * * @generated from enum value: AUDIENCE_UNSPECIFIED = 0; */ AUDIENCE_UNSPECIFIED = 0, /** * Only the owner and explicit ACL entries have access. * * @generated from enum value: PRIVATE = 1; */ PRIVATE = 1, /** * Any caller gets the board default role. * * @generated from enum value: PUBLIC = 2; */ PUBLIC = 2, /** * Followers of the owner get the board default role. * * @generated from enum value: FOLLOWERS = 3; */ FOLLOWERS = 3 } /** * Describes the enum collab.v1.BoardAudience. */ declare const BoardAudienceSchema: GenEnum; /** * BoardRole is the resolved capability level for a caller on a board. * * @generated from enum collab.v1.BoardRole */ declare enum BoardRole { /** * Role is not specified, which means the caller has no board access. * * @generated from enum value: ROLE_UNSPECIFIED = 0; */ ROLE_UNSPECIFIED = 0, /** * Viewer can read board metadata and join the room as read-only. * * @generated from enum value: VIEWER = 1; */ VIEWER = 1, /** * Editor can view and edit board content in the room. * * @generated from enum value: EDITOR = 2; */ EDITOR = 2, /** * Owner can view, edit, archive, and manage sharing settings. * * @generated from enum value: OWNER = 3; */ OWNER = 3 } /** * Describes the enum collab.v1.BoardRole. */ declare const BoardRoleSchema: GenEnum; /** * BoardAclSubjectType identifies the explicit ACL subject domain. * * @generated from enum collab.v1.BoardAclSubjectType */ declare enum BoardAclSubjectType { /** * ACL subject type is not specified. * * @generated from enum value: SUBJECT_TYPE_UNSPECIFIED = 0; */ SUBJECT_TYPE_UNSPECIFIED = 0, /** * ACL entry applies to one account. * * @generated from enum value: USER_SUBJECT = 1; */ USER_SUBJECT = 1, /** * ACL entry applies to one collaboration group. * * @generated from enum value: GROUP_SUBJECT = 2; */ GROUP_SUBJECT = 2 } /** * Describes the enum collab.v1.BoardAclSubjectType. */ declare const BoardAclSubjectTypeSchema: GenEnum; /** * WhiteboardService provides authenticated metadata and room-admission APIs for collaborative whiteboards. * * @generated from service collab.v1.WhiteboardService */ declare const WhiteboardService: GenService<{ /** * CreateBoard creates a new whiteboard owned by the caller. * * @generated from rpc collab.v1.WhiteboardService.CreateBoard */ createBoard: { methodKind: "unary"; input: typeof CreateBoardRequestSchema; output: typeof CreateBoardResponseSchema; }; /** * GetBoard returns one board visible to the caller. * * @generated from rpc collab.v1.WhiteboardService.GetBoard */ getBoard: { methodKind: "unary"; input: typeof GetBoardRequestSchema; output: typeof GetBoardResponseSchema; }; /** * ListBoards lists boards visible to the caller. * * @generated from rpc collab.v1.WhiteboardService.ListBoards */ listBoards: { methodKind: "unary"; input: typeof ListBoardsRequestSchema; output: typeof ListBoardsResponseSchema; }; /** * UpdateBoard updates mutable board metadata. * * @generated from rpc collab.v1.WhiteboardService.UpdateBoard */ updateBoard: { methodKind: "unary"; input: typeof UpdateBoardRequestSchema; output: typeof UpdateBoardResponseSchema; }; /** * UpdateBoardAcl fully replaces the explicit ACL for a board. * * @generated from rpc collab.v1.WhiteboardService.UpdateBoardAcl */ updateBoardAcl: { methodKind: "unary"; input: typeof UpdateBoardAclRequestSchema; output: typeof UpdateBoardAclResponseSchema; }; /** * ArchiveBoard archives or restores a board. * * @generated from rpc collab.v1.WhiteboardService.ArchiveBoard */ archiveBoard: { methodKind: "unary"; input: typeof ArchiveBoardRequestSchema; output: typeof ArchiveBoardResponseSchema; }; /** * MintJoinToken resolves access and mints a short-lived room admission token. * * @generated from rpc collab.v1.WhiteboardService.MintJoinToken */ mintJoinToken: { methodKind: "unary"; input: typeof MintJoinTokenRequestSchema; output: typeof MintJoinTokenResponseSchema; }; }>; //#endregion export { ArchiveBoardRequest, ArchiveBoardRequestSchema, ArchiveBoardResponse, ArchiveBoardResponseSchema, Board, BoardAccess, BoardAccessSchema, BoardAclEntry, BoardAclEntrySchema, BoardAclSubjectType, BoardAclSubjectTypeSchema, BoardAudience, BoardAudienceSchema, BoardListItem, BoardListItemSchema, BoardPermissions, BoardPermissionsSchema, BoardRole, BoardRoleSchema, BoardSchema, CreateBoardRequest, CreateBoardRequestSchema, CreateBoardResponse, CreateBoardResponseSchema, GetBoardRequest, GetBoardRequestSchema, GetBoardResponse, GetBoardResponseSchema, ListBoardsRequest, ListBoardsRequestSchema, ListBoardsResponse, ListBoardsResponseSchema, MintJoinTokenRequest, MintJoinTokenRequestSchema, MintJoinTokenResponse, MintJoinTokenResponseSchema, PresencePayload, PresencePayloadSchema, UpdateBoardAclRequest, UpdateBoardAclRequestSchema, UpdateBoardAclResponse, UpdateBoardAclResponseSchema, UpdateBoardRequest, UpdateBoardRequestSchema, UpdateBoardResponse, UpdateBoardResponseSchema, WhiteboardService, file_collab_v1_whiteboard, whiteboard_pb_d_exports }; //# sourceMappingURL=whiteboard_pb.d.ts.map