Files
YTChatHub/shared/chat.ts
T

41 lines
1.0 KiB
TypeScript

export type Badge = {
type: 'moderator' | 'member' | 'verified' | 'custom';
label?: string;
icon?: string;
imageUrl?: string; // For custom membership badges
};
export type SuperChatInfo = {
amount: string;
currency: string;
color: string;
stickerUrl?: string; // For super stickers
stickerAlt?: string; // Accessibility label for super stickers
};
export type MessageRun = {
text?: string;
emojiUrl?: string;
emojiAlt?: string;
};
export type ChatMessage = {
id: string;
author: string;
authorPhoto?: string;
authorChannelId?: string;
text: string;
runs?: MessageRun[]; // structured runs for emojis
publishedAt: string;
badges?: Badge[];
isModerator?: boolean;
isMember?: boolean;
isVerified?: boolean;
superChat?: SuperChatInfo;
membershipGift?: boolean;
membershipGiftPurchase?: boolean;
membershipLevel?: string; // e.g., "New member", "Member (6 months)", etc.
giftCount?: number; // Number of memberships gifted
leaderboardRank?: number; // YouTube leaderboard rank (1, 2, 3, etc.)
};