UNPKG

@hunterowner/kick-js

Version:

A typescript bot interface for kick.com

178 lines (173 loc) 4.07 kB
type Livestream = { id: number; slug: string; channel_id: number; created_at: Date; session_title: string; is_live: boolean; risk_level_id: null; start_time: Date; source: null; twitch_channel: null; duration: number; language: string; is_mature: boolean; viewer_count: number; thumbnail: string; channel: Channel; categories: CategoryElement[]; }; type CategoryElement = { id: number; category_id: number; name: string; slug: string; tags: string[]; description: null; deleted_at: null; viewers: number; category: CategoryCategory; }; type CategoryCategory = { id: number; name: string; slug: string; icon: string; }; type Channel = { id: number; user_id: number; slug: string; is_banned: boolean; playback_url: string; name_updated_at: null; vod_enabled: boolean; subscription_enabled: boolean; followersCount: number; user: User; can_host: boolean; verified: Verified; }; type User = { profilepic: string; bio: string; twitter: string; facebook: string; instagram: string; youtube: string; discord: string; tiktok: string; username: string; }; type Verified = { id: number; channel_id: number; created_at: Date; updated_at: Date; }; interface ClientOptions { plainEmote?: boolean; logger?: boolean; readOnly?: boolean; } interface Video { id: number; title: string; thumbnail: string; duration: number; live_stream_id: number; start_time: Date; created_at: Date; updated_at: Date; uuid: string; views: number; stream: string; language: string; livestream: Livestream; channel: Channel; } interface KickClient { on: (event: string, listener: (...args: any[]) => void) => void; vod: (video_id: string) => Promise<Video>; login: (credentials: AuthenticationSettings) => Promise<boolean>; user: { id: number; username: string; tag: string; } | null; sendMessage: (messageContent: string) => Promise<void>; timeOut: (targetUser: string, durationInMinutes: number) => Promise<void>; permanentBan: (targetUser: string) => Promise<void>; unban: (targetUser: string) => Promise<void>; deleteMessage: (messageId: string) => Promise<void>; slowMode: (mode: "on" | "off", durationInSeconds?: number) => Promise<void>; getPoll: (targetChannel?: string) => Promise<Poll | null>; getLeaderboards: (targetChannel?: string) => Promise<Leaderboard | null>; } interface AuthenticationSettings { username: string; password: string; otp_secret: string; } type Poll = { status: { code: number; message: string; error: boolean; }; data: { title: string; duration: number; result_display_duration: number; created_at: Date; options: { id: number; label: string; votes: number; }[]; remaining: number; has_voted: boolean; voted_option_id: null; }; }; type Leaderboard = { gifts: Gift[]; gifts_enabled: boolean; gifts_week: Gift[]; gifts_week_enabled: boolean; gifts_month: Gift[]; gifts_month_enabled: boolean; }; type Gift = { user_id: number; username: string; quantity: number; }; declare const createClient: (channelName: string, options?: ClientOptions) => KickClient; interface MessageData { id: string; chatroom_id: number; content: string; type: string; created_at: string; sender: { id: number; username: string; slug: string; identity: { color: string; badges: unknown; }; }; metadata?: { original_sender: { id: string; username: string; }; original_message: { id: string; content: string; }; }; } export { type MessageData, createClient };