/** Transport-agnostic list page — shared by every paginated surface. */ export interface Page { items: T[]; nextCursor?: C; } export interface RemoteMedia { remoteId: string; url?: string; mimeType: string; width?: number; height?: number; } /** Result of resolving a live source for program input (WP6 go-live slice). */ export interface LiveSourceResolution { /** Absolute HLS playback URL, or null when the source is not live. */ playbackHlsUrl: string | null; live: boolean; } export interface StreamPlaybackSource { remoteId: string; /** Absolute playback URL (HLS manifest, embed page, etc.). */ url: string; kind: "hls" | "dash" | "embed"; protocol: "https" | "rtmp" | "rtmps" | "srt"; } export interface DirectMessage { id: string; provider: string; conversationRemoteId: string; fromHandle: string; toHandle: string; text: string; sentAt: Date; } export interface NormalizedWebhookEvent { provider: string; eventType: string; /** Connection or channel the event belongs to, when resolvable. */ connectionKey?: string; payload: Record; receivedAt: Date; }