export interface ChannelListItem { channelSID: string; name: string; handle: string|null; thumbnailUrl: string|null; subscriberCount: number; isLive: boolean; viewerCount: number; videoId: string|null; // 클라이언트 내부용 — 서버가 반환한 random sort 순서를 유지하기 위한 stable index // (SignalR 업데이트로 isLive 가 바뀌어도 offline 채널의 랜덤 순서가 출렁이지 않도록 고정) _offlineRank?: number; } export interface ChannelStatusUpdate { channelSID: string; isLive: boolean; viewerCount: number; videoId: string|null; } export interface ChannelDetail { memberID: number; channelSID: string; memberSID: string; name: string; handle: string|null; youTubeUrl: string; thumbnailUrl: string|null; bannerUrl: string|null; description: string|null; subscriberCount: number; videoCount: number; isVerified: boolean; isLive: boolean; videoId: string|null; liveTitle: string|null; viewerCount: number; }