import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; export declare const protobufPackage = "TikTok"; export declare enum ControlAction { CONTROL_ACTION_FALLBACK_UNKNOWN = 0, CONTROL_ACTION_STREAM_PAUSED = 1, CONTROL_ACTION_STREAM_UNPAUSED = 2, CONTROL_ACTION_STREAM_ENDED = 3, CONTROL_ACTION_STREAM_SUSPENDED = 4, UNRECOGNIZED = -1 } export declare function controlActionFromJSON(object: any): ControlAction; export declare function controlActionToJSON(object: ControlAction): string; /** Data structure from im/fetch/ response */ export interface WebcastResponse { messages: Message[]; cursor: string; fetchInterval: number; serverTimestamp: string; internalExt: string; /** ws (1) or polling (2) */ fetchType: number; wsParams: WebsocketParam[]; heartbeatDuration: number; needAck: boolean; wsUrl: string; } export interface Message { type: string; binary: Uint8Array; } export interface WebsocketParam { name: string; value: string; } /** Message types depending on Message.tyoe */ export interface WebcastControlMessage { action: ControlAction; } /** Statistics like viewer count */ export interface WebcastRoomUserSeqMessage { topViewers: TopUser[]; viewerCount: number; } export interface TopUser { coinCount: string; user: User | undefined; } export interface WebcastChatMessage { event: WebcastMessageEvent | undefined; user: User | undefined; comment: string; emotes: WebcastSubEmote[]; } /** Chat Emotes (Subscriber) */ export interface WebcastEmoteChatMessage { user: User | undefined; emote: EmoteDetails | undefined; } export interface WebcastSubEmote { /** starting at 0, you insert the emote itself into the comment at that place */ placeInComment: number; emote: EmoteDetails | undefined; } export interface WebcastMemberMessage { event: WebcastMessageEvent | undefined; user: User | undefined; actionId: number; } export interface WebcastGiftMessage { event: WebcastMessageEvent | undefined; giftId: number; repeatCount: number; user: User | undefined; repeatEnd: number; groupId: string; giftDetails: WebcastGiftMessageGiftDetails | undefined; monitorExtra: string; giftExtra: WebcastGiftMessageGiftExtra | undefined; } export interface WebcastGiftMessageGiftDetails { giftImage: WebcastGiftMessageGiftImage | undefined; giftName: string; describe: string; giftType: number; diamondCount: number; } /** Taken from https://github.com/Davincible/gotiktoklive/blob/da4630622bc586629a53faae64e8c53509af29de/proto/tiktok.proto#L57 */ export interface WebcastGiftMessageGiftExtra { timestamp: string; receiverUserId: string; } export interface WebcastGiftMessageGiftImage { giftPictureUrl: string; } /** Battle start */ export interface WebcastLinkMicBattle { battleUsers: WebcastLinkMicBattleItems[]; } export interface WebcastLinkMicBattleItems { battleGroup: WebcastLinkMicBattleGroup | undefined; } export interface WebcastLinkMicBattleGroup { user: LinkUser | undefined; } /** Battle status */ export interface WebcastLinkMicArmies { battleItems: WebcastLinkMicArmiesItems[]; battleStatus: number; } export interface WebcastLinkMicArmiesItems { hostUserId: string; battleGroups: WebcastLinkMicArmiesGroup[]; } export interface WebcastLinkMicArmiesGroup { users: User[]; points: number; } /** Follow & share event */ export interface WebcastSocialMessage { event: WebcastMessageEvent | undefined; user: User | undefined; } /** Like event (is only sent from time to time, not with every like) */ export interface WebcastLikeMessage { event: WebcastMessageEvent | undefined; user: User | undefined; likeCount: number; totalLikeCount: number; } /** New question event */ export interface WebcastQuestionNewMessage { questionDetails: QuestionDetails | undefined; } export interface QuestionDetails { questionText: string; user: User | undefined; } export interface WebcastMessageEvent { msgId: string; createTime: string; eventDetails: WebcastMessageEventDetails | undefined; } /** Contains UI information */ export interface WebcastMessageEventDetails { displayType: string; label: string; } /** Source: Co-opted https://github.com/zerodytrash/TikTok-Livestream-Chat-Connector/issues/19#issuecomment-1074150342 */ export interface WebcastLiveIntroMessage { id: string; description: string; user: User | undefined; } export interface SystemMessage { description: string; } export interface WebcastInRoomBannerMessage { data: string; } export interface RankItem { colour: string; id: string; } export interface WeeklyRanking { type: string; label: string; rank: RankItem | undefined; } export interface RankContainer { rankings: WeeklyRanking | undefined; } export interface WebcastHourlyRankMessage { data: RankContainer | undefined; } export interface EmoteDetails { emoteId: string; image: EmoteImage | undefined; } export interface EmoteImage { imageUrl: string; } /** * Envelope (treasure boxes) * Taken from https://github.com/ThanoFish/TikTok-Live-Connector/blob/9b215b96792adfddfb638344b152fa9efa581b4c/src/proto/tiktokSchema.proto */ export interface WebcastEnvelopeMessage { treasureBoxData: TreasureBoxData | undefined; treasureBoxUser: TreasureBoxUser | undefined; } export interface TreasureBoxUser { user2: TreasureBoxUser2 | undefined; } export interface TreasureBoxUser2 { user3: TreasureBoxUser3[]; } export interface TreasureBoxUser3 { user4: TreasureBoxUser4 | undefined; } export interface TreasureBoxUser4 { user: User | undefined; } export interface TreasureBoxData { coins: number; canOpen: number; timestamp: string; } /** New Subscriber message */ export interface WebcastSubNotifyMessage { event: WebcastMessageEvent | undefined; user: User | undefined; exhibitionType: number; subMonth: number; subscribeType: number; oldSubscribeStatus: number; subscribingStatus: number; } export interface User { userId: string; nickname: string; profilePicture: ProfilePicture | undefined; uniqueId: string; secUid: string; badges: UserBadgesAttributes[]; createTime: string; bioDescription: string; followInfo: FollowInfo | undefined; } export interface FollowInfo { followingCount: number; followerCount: number; followStatus: number; pushStatus: number; } export interface LinkUser { userId: string; nickname: string; profilePicture: ProfilePicture | undefined; uniqueId: string; } export interface ProfilePicture { urls: string[]; } export interface UserBadgesAttributes { badgeSceneType: number; imageBadges: UserImageBadge[]; badges: UserBadge[]; privilegeLogExtra: PrivilegeLogExtra | undefined; } export interface PrivilegeLogExtra { privilegeId: string; level: string; } export interface UserBadge { type: string; name: string; } export interface UserImageBadge { displayType: number; image: UserImageBadgeImage | undefined; } export interface UserImageBadgeImage { url: string; } /** Websocket incoming message structure */ export interface WebcastWebsocketMessage { id: string; type: string; binary: Uint8Array; } /** Websocket acknowledgment message */ export interface WebcastWebsocketAck { id: string; type: string; } export declare const WebcastResponse: MessageFns; export declare const Message: MessageFns; export declare const WebsocketParam: MessageFns; export declare const WebcastControlMessage: MessageFns; export declare const WebcastRoomUserSeqMessage: MessageFns; export declare const TopUser: MessageFns; export declare const WebcastChatMessage: MessageFns; export declare const WebcastEmoteChatMessage: MessageFns; export declare const WebcastSubEmote: MessageFns; export declare const WebcastMemberMessage: MessageFns; export declare const WebcastGiftMessage: MessageFns; export declare const WebcastGiftMessageGiftDetails: MessageFns; export declare const WebcastGiftMessageGiftExtra: MessageFns; export declare const WebcastGiftMessageGiftImage: MessageFns; export declare const WebcastLinkMicBattle: MessageFns; export declare const WebcastLinkMicBattleItems: MessageFns; export declare const WebcastLinkMicBattleGroup: MessageFns; export declare const WebcastLinkMicArmies: MessageFns; export declare const WebcastLinkMicArmiesItems: MessageFns; export declare const WebcastLinkMicArmiesGroup: MessageFns; export declare const WebcastSocialMessage: MessageFns; export declare const WebcastLikeMessage: MessageFns; export declare const WebcastQuestionNewMessage: MessageFns; export declare const QuestionDetails: MessageFns; export declare const WebcastMessageEvent: MessageFns; export declare const WebcastMessageEventDetails: MessageFns; export declare const WebcastLiveIntroMessage: MessageFns; export declare const SystemMessage: MessageFns; export declare const WebcastInRoomBannerMessage: MessageFns; export declare const RankItem: MessageFns; export declare const WeeklyRanking: MessageFns; export declare const RankContainer: MessageFns; export declare const WebcastHourlyRankMessage: MessageFns; export declare const EmoteDetails: MessageFns; export declare const EmoteImage: MessageFns; export declare const WebcastEnvelopeMessage: MessageFns; export declare const TreasureBoxUser: MessageFns; export declare const TreasureBoxUser2: MessageFns; export declare const TreasureBoxUser3: MessageFns; export declare const TreasureBoxUser4: MessageFns; export declare const TreasureBoxData: MessageFns; export declare const WebcastSubNotifyMessage: MessageFns; export declare const User: MessageFns; export declare const FollowInfo: MessageFns; export declare const LinkUser: MessageFns; export declare const ProfilePicture: MessageFns; export declare const UserBadgesAttributes: MessageFns; export declare const PrivilegeLogExtra: MessageFns; export declare const UserBadge: MessageFns; export declare const UserImageBadge: MessageFns; export declare const UserImageBadgeImage: MessageFns; export declare const WebcastWebsocketMessage: MessageFns; export declare const WebcastWebsocketAck: MessageFns; declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export declare type DeepPartial = T extends Builtin ? T : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; declare type KeysOfUnion = T extends T ? keyof T : never; export declare type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude>]: never; }; export interface MessageFns { encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create, I>>(base?: I): T; fromPartial, I>>(object: I): T; } export {}; //# sourceMappingURL=tiktok-schema.d.ts.map