@wave-av/sdk 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +9 -50
  2. package/dist/audience.d.ts +105 -0
  3. package/dist/audience.d.ts.map +1 -0
  4. package/dist/billing-types.d.ts +39 -0
  5. package/dist/billing-types.d.ts.map +1 -0
  6. package/dist/billing-types.js +18 -0
  7. package/dist/billing-types.mjs +0 -0
  8. package/dist/billing.d.ts +69 -0
  9. package/dist/billing.d.ts.map +1 -0
  10. package/dist/billing.js +139 -0
  11. package/dist/billing.mjs +9 -0
  12. package/dist/camera-control.d.ts +55 -0
  13. package/dist/camera-control.d.ts.map +1 -0
  14. package/dist/captions-types.d.ts +119 -0
  15. package/dist/captions-types.d.ts.map +1 -0
  16. package/dist/captions.d.ts +218 -0
  17. package/dist/captions.d.ts.map +1 -0
  18. package/dist/chapters-types.d.ts +87 -0
  19. package/dist/chapters-types.d.ts.map +1 -0
  20. package/dist/chapters.d.ts +207 -0
  21. package/dist/chapters.d.ts.map +1 -0
  22. package/dist/chunk-I3V47I4W.mjs +114 -0
  23. package/dist/client-types.d.ts +59 -0
  24. package/dist/client-types.d.ts.map +1 -0
  25. package/dist/client.d.ts +119 -0
  26. package/dist/client.d.ts.map +1 -0
  27. package/dist/clips-types.d.ts +31 -0
  28. package/dist/clips-types.d.ts.map +1 -0
  29. package/dist/clips.d.ts +230 -0
  30. package/dist/clips.d.ts.map +1 -0
  31. package/dist/cloud-switcher.d.ts +66 -0
  32. package/dist/cloud-switcher.d.ts.map +1 -0
  33. package/dist/collab-types.d.ts +205 -0
  34. package/dist/collab-types.d.ts.map +1 -0
  35. package/dist/collab.d.ts +227 -0
  36. package/dist/collab.d.ts.map +1 -0
  37. package/dist/connect.d.ts +89 -0
  38. package/dist/connect.d.ts.map +1 -0
  39. package/dist/creator.d.ts +110 -0
  40. package/dist/creator.d.ts.map +1 -0
  41. package/dist/desktop.d.ts +96 -0
  42. package/dist/desktop.d.ts.map +1 -0
  43. package/dist/distribution.d.ts +93 -0
  44. package/dist/distribution.d.ts.map +1 -0
  45. package/dist/drm.d.ts +88 -0
  46. package/dist/drm.d.ts.map +1 -0
  47. package/dist/edge.d.ts +113 -0
  48. package/dist/edge.d.ts.map +1 -0
  49. package/dist/editor-types.d.ts +237 -0
  50. package/dist/editor-types.d.ts.map +1 -0
  51. package/dist/editor.d.ts +207 -0
  52. package/dist/editor.d.ts.map +1 -0
  53. package/dist/fleet.d.ts +208 -0
  54. package/dist/fleet.d.ts.map +1 -0
  55. package/dist/ghost.d.ts +214 -0
  56. package/dist/ghost.d.ts.map +1 -0
  57. package/dist/index.d.ts +131 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +114 -0
  60. package/dist/index.mjs +49 -43
  61. package/dist/marketplace.d.ts +91 -0
  62. package/dist/marketplace.d.ts.map +1 -0
  63. package/dist/mesh.d.ts +238 -0
  64. package/dist/mesh.d.ts.map +1 -0
  65. package/dist/notifications.d.ts +83 -0
  66. package/dist/notifications.d.ts.map +1 -0
  67. package/dist/phone-types.d.ts +111 -0
  68. package/dist/phone-types.d.ts.map +1 -0
  69. package/dist/phone.d.ts +235 -0
  70. package/dist/phone.d.ts.map +1 -0
  71. package/dist/pipeline-types.d.ts +188 -0
  72. package/dist/pipeline-types.d.ts.map +1 -0
  73. package/dist/pipeline.d.ts +224 -0
  74. package/dist/pipeline.d.ts.map +1 -0
  75. package/dist/podcast.d.ts +114 -0
  76. package/dist/podcast.d.ts.map +1 -0
  77. package/dist/prism.d.ts +133 -0
  78. package/dist/prism.d.ts.map +1 -0
  79. package/dist/prompter.d.ts +185 -0
  80. package/dist/prompter.d.ts.map +1 -0
  81. package/dist/pulse.d.ts +157 -0
  82. package/dist/pulse.d.ts.map +1 -0
  83. package/dist/qr.d.ts +83 -0
  84. package/dist/qr.d.ts.map +1 -0
  85. package/dist/replay.d.ts +53 -0
  86. package/dist/replay.d.ts.map +1 -0
  87. package/dist/scene-types.d.ts +191 -0
  88. package/dist/scene-types.d.ts.map +1 -0
  89. package/dist/scene.d.ts +214 -0
  90. package/dist/scene.d.ts.map +1 -0
  91. package/dist/search-types.d.ts +211 -0
  92. package/dist/search-types.d.ts.map +1 -0
  93. package/dist/search.d.ts +251 -0
  94. package/dist/search.d.ts.map +1 -0
  95. package/dist/sentiment-types.d.ts +108 -0
  96. package/dist/sentiment-types.d.ts.map +1 -0
  97. package/dist/sentiment.d.ts +247 -0
  98. package/dist/sentiment.d.ts.map +1 -0
  99. package/dist/signage.d.ts +102 -0
  100. package/dist/signage.d.ts.map +1 -0
  101. package/dist/slides.d.ts +69 -0
  102. package/dist/slides.d.ts.map +1 -0
  103. package/dist/studio-ai-types.d.ts +199 -0
  104. package/dist/studio-ai-types.d.ts.map +1 -0
  105. package/dist/studio-ai.d.ts +219 -0
  106. package/dist/studio-ai.d.ts.map +1 -0
  107. package/dist/studio-types.d.ts +268 -0
  108. package/dist/studio-types.d.ts.map +1 -0
  109. package/dist/studio.d.ts +235 -0
  110. package/dist/studio.d.ts.map +1 -0
  111. package/dist/telemetry.d.ts +77 -0
  112. package/dist/telemetry.d.ts.map +1 -0
  113. package/dist/transcribe-types.d.ts +154 -0
  114. package/dist/transcribe-types.d.ts.map +1 -0
  115. package/dist/transcribe.d.ts +219 -0
  116. package/dist/transcribe.d.ts.map +1 -0
  117. package/dist/usb.d.ts +65 -0
  118. package/dist/usb.d.ts.map +1 -0
  119. package/dist/vault.d.ts +122 -0
  120. package/dist/vault.d.ts.map +1 -0
  121. package/dist/voice-types.d.ts +107 -0
  122. package/dist/voice-types.d.ts.map +1 -0
  123. package/dist/voice.d.ts +178 -0
  124. package/dist/voice.d.ts.map +1 -0
  125. package/dist/zoom.d.ts +92 -0
  126. package/dist/zoom.d.ts.map +1 -0
  127. package/package.json +86 -86
@@ -0,0 +1,205 @@
1
+ /**
2
+ * WAVE SDK - Collab API
3
+ *
4
+ * Real-time collaboration features for projects and media.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { PaginationParams, Timestamps, Metadata } from './client';
10
+ /**
11
+ * Collaboration room status
12
+ */
13
+ export type RoomStatus = 'active' | 'closed' | 'archived';
14
+ /**
15
+ * Participant role in collaboration
16
+ */
17
+ export type ParticipantRole = 'owner' | 'editor' | 'commenter' | 'viewer';
18
+ /**
19
+ * Presence status
20
+ */
21
+ export type PresenceStatus = 'online' | 'away' | 'busy' | 'offline';
22
+ /**
23
+ * Collaboration room
24
+ */
25
+ export interface CollabRoom extends Timestamps {
26
+ id: string;
27
+ organization_id: string;
28
+ name: string;
29
+ description?: string;
30
+ resource_type: 'project' | 'clip' | 'document' | 'stream';
31
+ resource_id: string;
32
+ status: RoomStatus;
33
+ owner_id: string;
34
+ max_participants?: number;
35
+ participant_count: number;
36
+ allow_anonymous: boolean;
37
+ settings: RoomSettings;
38
+ metadata?: Metadata;
39
+ }
40
+ /**
41
+ * Room settings
42
+ */
43
+ export interface RoomSettings {
44
+ voice_enabled: boolean;
45
+ video_enabled: boolean;
46
+ screen_share_enabled: boolean;
47
+ chat_enabled: boolean;
48
+ annotations_enabled: boolean;
49
+ playback_sync_enabled: boolean;
50
+ recording_enabled: boolean;
51
+ }
52
+ /**
53
+ * Room participant
54
+ */
55
+ export interface Participant extends Timestamps {
56
+ id: string;
57
+ room_id: string;
58
+ user_id: string;
59
+ display_name: string;
60
+ avatar_url?: string;
61
+ role: ParticipantRole;
62
+ presence: PresenceStatus;
63
+ cursor_position?: CursorPosition;
64
+ selection?: Selection;
65
+ permissions: ParticipantPermissions;
66
+ }
67
+ /**
68
+ * Participant permissions
69
+ */
70
+ export interface ParticipantPermissions {
71
+ can_edit: boolean;
72
+ can_comment: boolean;
73
+ can_invite: boolean;
74
+ can_export: boolean;
75
+ can_control_playback: boolean;
76
+ }
77
+ /**
78
+ * Cursor position for presence
79
+ */
80
+ export interface CursorPosition {
81
+ x: number;
82
+ y: number;
83
+ element_id?: string;
84
+ timestamp: number;
85
+ }
86
+ /**
87
+ * Selection range
88
+ */
89
+ export interface Selection {
90
+ start: number;
91
+ end: number;
92
+ element_id?: string;
93
+ type: 'text' | 'timeline' | 'range';
94
+ }
95
+ /**
96
+ * Comment
97
+ */
98
+ export interface Comment extends Timestamps {
99
+ id: string;
100
+ room_id: string;
101
+ user_id: string;
102
+ display_name: string;
103
+ avatar_url?: string;
104
+ content: string;
105
+ timestamp?: number;
106
+ element_id?: string;
107
+ position?: {
108
+ x: number;
109
+ y: number;
110
+ };
111
+ parent_id?: string;
112
+ resolved: boolean;
113
+ reactions: Reaction[];
114
+ }
115
+ /**
116
+ * Reaction
117
+ */
118
+ export interface Reaction {
119
+ emoji: string;
120
+ user_id: string;
121
+ created_at: string;
122
+ }
123
+ /**
124
+ * Annotation
125
+ */
126
+ export interface Annotation extends Timestamps {
127
+ id: string;
128
+ room_id: string;
129
+ user_id: string;
130
+ type: 'drawing' | 'text' | 'shape' | 'arrow' | 'highlight';
131
+ timestamp?: number;
132
+ duration?: number;
133
+ data: Record<string, unknown>;
134
+ color: string;
135
+ visible: boolean;
136
+ }
137
+ /**
138
+ * Create room request
139
+ */
140
+ export interface CreateRoomRequest {
141
+ name: string;
142
+ description?: string;
143
+ resource_type: 'project' | 'clip' | 'document' | 'stream';
144
+ resource_id: string;
145
+ max_participants?: number;
146
+ allow_anonymous?: boolean;
147
+ settings?: Partial<RoomSettings>;
148
+ metadata?: Metadata;
149
+ }
150
+ /**
151
+ * Update room request
152
+ */
153
+ export interface UpdateRoomRequest {
154
+ name?: string;
155
+ description?: string;
156
+ settings?: Partial<RoomSettings>;
157
+ metadata?: Metadata;
158
+ }
159
+ /**
160
+ * Invite request
161
+ */
162
+ export interface InviteRequest {
163
+ email?: string;
164
+ user_id?: string;
165
+ role: ParticipantRole;
166
+ message?: string;
167
+ }
168
+ /**
169
+ * List rooms params
170
+ */
171
+ export interface ListRoomsParams extends PaginationParams {
172
+ status?: RoomStatus;
173
+ resource_type?: 'project' | 'clip' | 'document' | 'stream';
174
+ resource_id?: string;
175
+ }
176
+ /**
177
+ * Collab API client
178
+ *
179
+ * All operations require appropriate permissions. Authorization is enforced
180
+ * server-side - the API returns 403 if the authenticated user lacks access.
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * import { WaveClient } from '@wave/sdk';
185
+ * import { CollabAPI } from '@wave/sdk/collab';
186
+ *
187
+ * const client = new WaveClient({ apiKey: 'your-api-key' });
188
+ * const collab = new CollabAPI(client);
189
+ *
190
+ * // Create a collaboration room for a project
191
+ * const room = await collab.createRoom({
192
+ * name: 'Project Review',
193
+ * resource_type: 'project',
194
+ * resource_id: 'project_123',
195
+ * settings: {
196
+ * voice_enabled: true,
197
+ * annotations_enabled: true,
198
+ * },
199
+ * });
200
+ *
201
+ * // Get join token for real-time connection
202
+ * const token = await collab.getJoinToken(room.id);
203
+ * ```
204
+ */
205
+ //# sourceMappingURL=collab-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab-types.d.ts","sourceRoot":"","sources":["../src/collab-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACT,MAAM,UAAU,CAAC;AAOlB;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,UAAU;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * WAVE SDK - Collab API
3
+ *
4
+ * Real-time collaboration features for projects and media.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { WaveClient, PaginationParams, PaginatedResponse } from './client';
10
+ export * from './collab-types';
11
+ import type { Annotation, CollabRoom, Comment, CreateRoomRequest, InviteRequest, ListRoomsParams, Participant, ParticipantPermissions, ParticipantRole, UpdateRoomRequest } from './collab-types';
12
+ export declare class CollabAPI {
13
+ private readonly client;
14
+ private readonly basePath;
15
+ constructor(client: WaveClient);
16
+ /**
17
+ * Create a collaboration room
18
+ *
19
+ * Requires: collab:create permission
20
+ */
21
+ createRoom(request: CreateRoomRequest): Promise<CollabRoom>;
22
+ /**
23
+ * Get a room by ID
24
+ *
25
+ * Requires: collab:read permission
26
+ */
27
+ getRoom(roomId: string): Promise<CollabRoom>;
28
+ /**
29
+ * Update a room
30
+ *
31
+ * Requires: collab:update permission
32
+ */
33
+ updateRoom(roomId: string, request: UpdateRoomRequest): Promise<CollabRoom>;
34
+ /**
35
+ * Close a room
36
+ *
37
+ * Requires: collab:manage permission
38
+ */
39
+ closeRoom(roomId: string): Promise<CollabRoom>;
40
+ /**
41
+ * Archive a room
42
+ *
43
+ * Requires: collab:manage permission (server-side RBAC enforced)
44
+ */
45
+ archiveRoom(roomId: string): Promise<void>;
46
+ /**
47
+ * List rooms
48
+ *
49
+ * Requires: collab:read permission
50
+ */
51
+ listRooms(params?: ListRoomsParams): Promise<PaginatedResponse<CollabRoom>>;
52
+ /**
53
+ * Get join token for real-time connection
54
+ *
55
+ * Requires: collab:join permission
56
+ */
57
+ getJoinToken(roomId: string, options?: {
58
+ display_name?: string;
59
+ avatar_url?: string;
60
+ }): Promise<{
61
+ token: string;
62
+ expires_at: string;
63
+ websocket_url: string;
64
+ }>;
65
+ /**
66
+ * List participants in a room
67
+ *
68
+ * Requires: collab:read permission
69
+ */
70
+ listParticipants(roomId: string, params?: PaginationParams): Promise<PaginatedResponse<Participant>>;
71
+ /**
72
+ * Get a participant
73
+ *
74
+ * Requires: collab:read permission
75
+ */
76
+ getParticipant(roomId: string, participantId: string): Promise<Participant>;
77
+ /**
78
+ * Update a participant's role
79
+ *
80
+ * Requires: collab:manage permission
81
+ */
82
+ updateParticipant(roomId: string, participantId: string, updates: {
83
+ role?: ParticipantRole;
84
+ permissions?: Partial<ParticipantPermissions>;
85
+ }): Promise<Participant>;
86
+ /**
87
+ * Remove a participant from a room
88
+ *
89
+ * Requires: collab:manage permission (server-side RBAC enforced)
90
+ */
91
+ removeParticipant(roomId: string, participantId: string): Promise<void>;
92
+ /**
93
+ * Invite users to a room
94
+ *
95
+ * Requires: collab:invite permission
96
+ */
97
+ invite(roomId: string, invites: InviteRequest[]): Promise<{
98
+ sent: number;
99
+ failed: Array<{
100
+ email?: string;
101
+ user_id?: string;
102
+ error: string;
103
+ }>;
104
+ }>;
105
+ /**
106
+ * Add a comment
107
+ *
108
+ * Requires: collab:comment permission
109
+ */
110
+ addComment(roomId: string, comment: {
111
+ content: string;
112
+ timestamp?: number;
113
+ element_id?: string;
114
+ position?: {
115
+ x: number;
116
+ y: number;
117
+ };
118
+ parent_id?: string;
119
+ }): Promise<Comment>;
120
+ /**
121
+ * List comments
122
+ *
123
+ * Requires: collab:read permission
124
+ */
125
+ listComments(roomId: string, params?: PaginationParams & {
126
+ resolved?: boolean;
127
+ element_id?: string;
128
+ parent_id?: string;
129
+ }): Promise<PaginatedResponse<Comment>>;
130
+ /**
131
+ * Update a comment
132
+ *
133
+ * Requires: collab:comment permission (own comments) or collab:manage
134
+ */
135
+ updateComment(roomId: string, commentId: string, updates: {
136
+ content?: string;
137
+ resolved?: boolean;
138
+ }): Promise<Comment>;
139
+ /**
140
+ * Remove a comment
141
+ *
142
+ * Requires: collab:comment permission (own) or collab:manage (server-side RBAC enforced)
143
+ */
144
+ removeComment(roomId: string, commentId: string): Promise<void>;
145
+ /**
146
+ * Add a reaction to a comment
147
+ *
148
+ * Requires: collab:comment permission
149
+ */
150
+ addReaction(roomId: string, commentId: string, emoji: string): Promise<Comment>;
151
+ /**
152
+ * Remove a reaction from a comment
153
+ *
154
+ * Requires: collab:comment permission (server-side RBAC enforced)
155
+ */
156
+ removeReaction(roomId: string, commentId: string, emoji: string): Promise<void>;
157
+ /**
158
+ * Add an annotation
159
+ *
160
+ * Requires: collab:annotate permission
161
+ */
162
+ addAnnotation(roomId: string, annotation: Omit<Annotation, 'id' | 'room_id' | 'user_id' | 'created_at' | 'updated_at'>): Promise<Annotation>;
163
+ /**
164
+ * List annotations
165
+ *
166
+ * Requires: collab:read permission
167
+ */
168
+ listAnnotations(roomId: string, params?: PaginationParams & {
169
+ timestamp?: number;
170
+ user_id?: string;
171
+ }): Promise<PaginatedResponse<Annotation>>;
172
+ /**
173
+ * Update an annotation
174
+ *
175
+ * Requires: collab:annotate permission (own) or collab:manage
176
+ */
177
+ updateAnnotation(roomId: string, annotationId: string, updates: Partial<Omit<Annotation, 'id' | 'room_id' | 'user_id' | 'created_at' | 'updated_at'>>): Promise<Annotation>;
178
+ /**
179
+ * Remove an annotation
180
+ *
181
+ * Requires: collab:annotate permission (own) or collab:manage (server-side RBAC enforced)
182
+ */
183
+ removeAnnotation(roomId: string, annotationId: string): Promise<void>;
184
+ /**
185
+ * Clear all annotations
186
+ *
187
+ * Requires: collab:manage permission
188
+ */
189
+ clearAnnotations(roomId: string): Promise<{
190
+ cleared: number;
191
+ }>;
192
+ /**
193
+ * Start recording the collaboration session
194
+ *
195
+ * Requires: collab:record permission
196
+ */
197
+ startRecording(roomId: string): Promise<{
198
+ recording_id: string;
199
+ started_at: string;
200
+ }>;
201
+ /**
202
+ * Stop recording
203
+ *
204
+ * Requires: collab:record permission
205
+ */
206
+ stopRecording(roomId: string): Promise<{
207
+ recording_id: string;
208
+ url: string;
209
+ duration: number;
210
+ }>;
211
+ /**
212
+ * Get recording status
213
+ *
214
+ * Requires: collab:read permission
215
+ */
216
+ getRecordingStatus(roomId: string): Promise<{
217
+ recording: boolean;
218
+ recording_id?: string;
219
+ started_at?: string;
220
+ duration?: number;
221
+ }>;
222
+ }
223
+ /**
224
+ * Create a Collab API instance
225
+ */
226
+ export declare function createCollabAPI(client: WaveClient): CollabAPI;
227
+ //# sourceMappingURL=collab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab.d.ts","sourceRoot":"","sources":["../src/collab.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * WAVE SDK - Connect API
3
+ *
4
+ * Third-party integration and webhook management.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type IntegrationStatus = "active" | "inactive" | "error" | "pending_auth";
8
+ export type IntegrationType = "oauth" | "api_key" | "webhook" | "native";
9
+ export interface Integration extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ name: string;
13
+ type: IntegrationType;
14
+ provider: string;
15
+ status: IntegrationStatus;
16
+ config: Record<string, unknown>;
17
+ scopes: string[];
18
+ last_sync_at?: string;
19
+ error_message?: string;
20
+ }
21
+ export interface WebhookEndpoint extends Timestamps {
22
+ id: string;
23
+ integration_id: string;
24
+ url: string;
25
+ events: string[];
26
+ status: "active" | "inactive";
27
+ secret: string;
28
+ }
29
+ export interface WebhookDelivery {
30
+ id: string;
31
+ webhook_id: string;
32
+ event: string;
33
+ status: "success" | "failed" | "pending";
34
+ status_code?: number;
35
+ response_time_ms?: number;
36
+ attempts: number;
37
+ next_retry_at?: string;
38
+ created_at: string;
39
+ }
40
+ export interface EnableIntegrationRequest {
41
+ provider: string;
42
+ type: IntegrationType;
43
+ config?: Record<string, unknown>;
44
+ scopes?: string[];
45
+ }
46
+ export interface CreateWebhookRequest {
47
+ url: string;
48
+ events: string[];
49
+ }
50
+ export interface ListIntegrationsParams extends PaginationParams {
51
+ status?: IntegrationStatus;
52
+ provider?: string;
53
+ type?: IntegrationType;
54
+ }
55
+ /**
56
+ * Third-party integration management with OAuth, API keys, and webhooks.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * await wave.connect.enable({ provider: "slack", type: "oauth", scopes: ["chat:write"] });
61
+ * const webhook = await wave.connect.createWebhook(integrationId, { url: "https://...", events: ["stream.started"] });
62
+ * ```
63
+ */
64
+ export declare class ConnectAPI {
65
+ private readonly client;
66
+ private readonly basePath;
67
+ constructor(client: WaveClient);
68
+ list(params?: ListIntegrationsParams): Promise<PaginatedResponse<Integration>>;
69
+ get(integrationId: string): Promise<Integration>;
70
+ enable(request: EnableIntegrationRequest): Promise<Integration>;
71
+ disable(integrationId: string): Promise<void>;
72
+ configure(integrationId: string, config: Record<string, unknown>): Promise<Integration>;
73
+ testConnection(integrationId: string): Promise<{
74
+ connected: boolean;
75
+ latency_ms: number;
76
+ error?: string;
77
+ }>;
78
+ listWebhooks(integrationId?: string): Promise<WebhookEndpoint[]>;
79
+ createWebhook(integrationId: string, request: CreateWebhookRequest): Promise<WebhookEndpoint>;
80
+ updateWebhook(webhookId: string, updates: {
81
+ url?: string;
82
+ events?: string[];
83
+ }): Promise<WebhookEndpoint>;
84
+ removeWebhook(webhookId: string): Promise<void>;
85
+ listDeliveries(webhookId: string, params?: PaginationParams): Promise<PaginatedResponse<WebhookDelivery>>;
86
+ retryDelivery(deliveryId: string): Promise<WebhookDelivery>;
87
+ }
88
+ export declare function createConnectAPI(client: WaveClient): ConnectAPI;
89
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * WAVE SDK - Creator API
3
+ *
4
+ * Creator monetization, subscriptions, tips, and payouts.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export interface CreatorProfile extends Timestamps {
8
+ id: string;
9
+ user_id: string;
10
+ organization_id: string;
11
+ display_name: string;
12
+ bio?: string;
13
+ avatar_url?: string;
14
+ banner_url?: string;
15
+ subscriber_count: number;
16
+ follower_count: number;
17
+ total_revenue_cents: number;
18
+ verified: boolean;
19
+ tier: "starter" | "pro" | "partner";
20
+ }
21
+ export interface Subscription {
22
+ id: string;
23
+ creator_id: string;
24
+ subscriber_id: string;
25
+ tier: string;
26
+ price_cents: number;
27
+ status: "active" | "cancelled" | "past_due";
28
+ current_period_start: string;
29
+ current_period_end: string;
30
+ created_at: string;
31
+ }
32
+ export interface Tip {
33
+ id: string;
34
+ creator_id: string;
35
+ tipper_id: string;
36
+ amount_cents: number;
37
+ message?: string;
38
+ stream_id?: string;
39
+ created_at: string;
40
+ }
41
+ export interface Payout {
42
+ id: string;
43
+ creator_id: string;
44
+ amount_cents: number;
45
+ status: "pending" | "processing" | "completed" | "failed";
46
+ method: "bank_transfer" | "paypal" | "stripe";
47
+ requested_at: string;
48
+ completed_at?: string;
49
+ }
50
+ export interface RevenueReport {
51
+ creator_id: string;
52
+ period: string;
53
+ total_cents: number;
54
+ subscription_cents: number;
55
+ tip_cents: number;
56
+ ad_cents: number;
57
+ platform_fee_cents: number;
58
+ net_cents: number;
59
+ }
60
+ export interface UpdateProfileRequest {
61
+ display_name?: string;
62
+ bio?: string;
63
+ avatar_url?: string;
64
+ banner_url?: string;
65
+ }
66
+ export interface ListSubscriptionsParams extends PaginationParams {
67
+ status?: string;
68
+ tier?: string;
69
+ }
70
+ /**
71
+ * Creator monetization: profiles, subscriptions, tips, and payouts.
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const profile = await wave.creator.getProfile(creatorId);
76
+ * const revenue = await wave.creator.getRevenue(creatorId, { period: "month" });
77
+ * await wave.creator.requestPayout(creatorId, { amount_cents: 10000, method: "stripe" });
78
+ * ```
79
+ */
80
+ export declare class CreatorAPI {
81
+ private readonly client;
82
+ private readonly basePath;
83
+ constructor(client: WaveClient);
84
+ getProfile(creatorId: string): Promise<CreatorProfile>;
85
+ updateProfile(creatorId: string, request: UpdateProfileRequest): Promise<CreatorProfile>;
86
+ getRevenue(creatorId: string, params?: {
87
+ period?: string;
88
+ start_date?: string;
89
+ end_date?: string;
90
+ }): Promise<RevenueReport>;
91
+ listSubscriptions(creatorId: string, params?: ListSubscriptionsParams): Promise<PaginatedResponse<Subscription>>;
92
+ listTips(creatorId: string, params?: PaginationParams): Promise<PaginatedResponse<Tip>>;
93
+ createTipJar(creatorId: string, config: {
94
+ enabled: boolean;
95
+ min_amount_cents?: number;
96
+ suggested_amounts?: number[];
97
+ }): Promise<{
98
+ enabled: boolean;
99
+ }>;
100
+ listPayouts(creatorId: string, params?: PaginationParams): Promise<PaginatedResponse<Payout>>;
101
+ requestPayout(creatorId: string, request: {
102
+ amount_cents: number;
103
+ method: Payout["method"];
104
+ }): Promise<Payout>;
105
+ getAnalytics(creatorId: string, params?: {
106
+ period?: string;
107
+ }): Promise<Record<string, unknown>>;
108
+ }
109
+ export declare function createCreatorAPI(client: WaveClient): CreatorAPI;
110
+ //# sourceMappingURL=creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator.d.ts","sourceRoot":"","sources":["../src/creator.ts"],"names":[],"mappings":"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"}