@nainudhin/video-meeting-sdk 1.9.2 → 1.10.0

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.
@@ -133,6 +133,94 @@ export interface ChatMessageRow {
133
133
  timestamp: string;
134
134
  }
135
135
 
136
+ export interface MeetingInvitee {
137
+ userId: string;
138
+ userName: string;
139
+ email?: string | null;
140
+ }
141
+
142
+ export interface MeetingInviteeResponse extends MeetingInvitee {
143
+ isHost: boolean;
144
+ /** Personalized join URL; encodes the userId so the joiner keeps their identity. */
145
+ joinUrl: string;
146
+ }
147
+
148
+ export interface Meeting {
149
+ success: boolean;
150
+ roomId: string;
151
+ workspace: string;
152
+ title: string | null;
153
+ scheduledFor: string | null;
154
+ hostId: string | null;
155
+ hostName: string | null;
156
+ joinUrl: string;
157
+ invitees: MeetingInviteeResponse[];
158
+ createdAt?: string;
159
+ updatedAt?: string;
160
+ }
161
+
162
+ export interface MeetingListRow {
163
+ roomId: string;
164
+ title: string | null;
165
+ hostId: string | null;
166
+ hostName: string | null;
167
+ status: 'active' | 'ended' | 'cancelled';
168
+ scheduledFor: string | null;
169
+ createdAt: string;
170
+ endedAt: string | null;
171
+ }
172
+
173
+ export interface CreateMeetingOptions {
174
+ workspace: string;
175
+ /** Backend host override. Defaults to the built-in hosted URL. */
176
+ host?: string;
177
+ ai?: AiConfig;
178
+ title?: string;
179
+ /** userId of the invitee who should be flagged as host. */
180
+ hostUserId?: string;
181
+ hostName?: string;
182
+ /** Freeform host id when the host isn't in the invitees list. */
183
+ hostId?: string;
184
+ scheduledFor?: string | Date;
185
+ users?: MeetingInvitee[];
186
+ }
187
+
188
+ export interface UpdateMeetingOptions {
189
+ workspace: string;
190
+ roomId: string;
191
+ host?: string;
192
+ ai?: AiConfig;
193
+ title?: string | null;
194
+ hostUserId?: string | null;
195
+ hostName?: string | null;
196
+ users?: MeetingInvitee[];
197
+ scheduledFor?: string | Date | null;
198
+ }
199
+
200
+ export interface CancelMeetingOptions {
201
+ workspace: string;
202
+ roomId: string;
203
+ host?: string;
204
+ ai?: AiConfig;
205
+ }
206
+
207
+ export interface ListMeetingsOptions {
208
+ workspace: string;
209
+ host?: string;
210
+ ai?: AiConfig;
211
+ status?: 'active' | 'ended' | 'cancelled';
212
+ upcoming?: boolean;
213
+ }
214
+
215
+ export interface QuickJoinOptions extends Omit<MeetSDKConfig, 'user' | 'roomId' | 'workspace'> {
216
+ workspace: string;
217
+ roomId: string;
218
+ userName: string;
219
+ /** Optional stable id. Auto-generated when omitted. */
220
+ userId?: string;
221
+ container: string | Element;
222
+ }
223
+
136
224
  export default class MeetSDK {
137
225
  constructor();
138
226
 
@@ -159,10 +247,35 @@ export default class MeetSDK {
159
247
  getSummary(): Promise<any>;
160
248
  generateSummary(): Promise<any>;
161
249
  transcribeAudio(blob: Blob, filename?: string): Promise<any>;
250
+
251
+ /**
252
+ * Schedule a new meeting. No init() needed. Returns the meeting with a
253
+ * shareable `joinUrl` and personalized per-invitee `joinUrl`s.
254
+ */
255
+ static createMeeting(opts: CreateMeetingOptions): Promise<Meeting>;
256
+ /** Update host / participants / schedule for an existing meeting. */
257
+ static updateMeeting(opts: UpdateMeetingOptions): Promise<Meeting>;
258
+ /** Cancel a scheduled meeting. */
259
+ static cancelMeeting(opts: CancelMeetingOptions): Promise<{ success: boolean; roomId: string; status: string; endedAt?: string; alreadyCancelled?: boolean }>;
260
+ /** List meetings for a workspace. */
261
+ static listMeetings(opts: ListMeetingsOptions): Promise<{ success: boolean; meetings: MeetingListRow[] }>;
262
+ /**
263
+ * One-shot join: build an instance, init(), mount(container), and return
264
+ * the SDK instance. Use for the common "user clicks a link, join the room"
265
+ * flow — no init/mount juggling from your app.
266
+ */
267
+ static quickJoin(opts: QuickJoinOptions): Promise<MeetSDK>;
162
268
  }
163
269
 
164
270
  declare global {
165
271
  interface Window {
166
- MeetSDK: MeetSDK;
272
+ MeetSDK: MeetSDK & {
273
+ createMeeting: typeof MeetSDK.createMeeting;
274
+ updateMeeting: typeof MeetSDK.updateMeeting;
275
+ cancelMeeting: typeof MeetSDK.cancelMeeting;
276
+ listMeetings: typeof MeetSDK.listMeetings;
277
+ quickJoin: typeof MeetSDK.quickJoin;
278
+ };
279
+ MeetSDKClass: typeof MeetSDK;
167
280
  }
168
281
  }