/** * Promise deferred primitive — lets external code resolve or reject * a promise. Used by RoomCoordinator for host→joiners handoff. */ export interface Deferred { promise: Promise; resolve(value: T): void; reject(error: unknown): void; } export function deferred(): Deferred { let resolve!: (value: T) => void; let reject!: (error: unknown) => void; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject }; }