import { Context, HTTP } from '@satorijs/core'; import { KookBot } from './bot'; export declare enum Signal { event = 0, hello = 1, ping = 2, pong = 3, reconnect = 4, resume = 5 } export interface Payload { s: Signal; sn?: number; d: Data; } export declare enum Type { text = 1, image = 2, video = 3, file = 4, unknown = 7, audio = 8, kmarkdown = 9, card = 10, system = 255 } export interface MessageParams { type: Type; msg_id: string; chat_code: string; target_id: string; content: any; quote: string; nonce: string; } export interface MessageBase { type: Type; content: string; } export interface Data extends MessageBase { channel_type: 'GROUP' | 'PERSON' | 'WEBHOOK_CHALLENGE'; challenge: string; verify_token: string; target_id: string; author_id: string; msg_id: string; msg_timestamp: number; nonce: string; extra: E; } type AttachmentType = 'image' | 'video' | 'audio' | 'file'; type NoticeType = 'user_updated' | 'message_btn_click' | 'added_reaction' | 'deleted_reaction' | 'updated_message' | 'deleted_message' | 'pinned_message' | 'unpinned_message' | 'joined_guild' | 'exited_guild' | 'updated_guild_member' | 'updated_guild' | 'deleted_guild' | 'self_joined_guild' | 'self_exited_guild' | 'added_role' | 'deleted_role' | 'updated_role' | 'added_block_list' | 'deleted_block_list' | 'added_emoji' | 'updated_emoji' | 'added_channel' | 'updated_channel' | 'deleted_channel' | 'updated_private_message' | 'deleted_private_message' | 'private_added_reaction' | 'private_deleted_reaction' | 'joined_channel' | 'exited_channel' | 'guild_member_online' | 'guild_member_offline'; export interface MessageMeta { mention: string[]; mention_all: boolean; mention_roles: string[]; mention_here: boolean; attachments: Attachment; quote: Message; author: Author; kmarkdown?: { raw_content: string; mention_part: KmarkdownUserMeta[]; mention_role_part: KmarkdownRoleMeta[]; }; } export interface PrivateChat { code: string; last_read_time: number; latest_msg_time: number; unread_count: number; is_friend: boolean; is_blocked: boolean; is_target_blocked: boolean; target_info: User; } export interface KmarkdownUserMeta { id: string; username: string; full_name: string; avatar: string; } export interface KmarkdownRoleMeta { role_id: number; name: string; color: number; } export interface MessageExtra extends MessageMeta { type: Type; code: string; guild_id: string; channel_name: string; } export interface Message extends MessageBase, MessageMeta { id: string; rong_id?: string; embeds: any[]; reactions: any[]; mention_info: object; extra: MessageExtra | Notice; } export interface MessageReturn { msg_id: string; msg_timestamp: number; nonce: string; } export interface Card { type: 'card'; theme?: Card.Theme; size?: Card.Size; modules: Card.Module[]; } export declare namespace Card { const Theme: readonly ["primary", "secondary", "warning", "danger", "info", "none", "success"]; type Theme = typeof Theme[number]; const Size: readonly ["lg", "sm"]; type Size = typeof Size[number]; type Module = Section | Container | ImageGroup | ActionGroup | Header | Divider | Invite | File | Countdown | Context; interface Text { type: 'plain-text' | 'kmarkdown'; content: string; emoji?: boolean; } interface Paragraph { type: 'paragraph'; cols: number; fields: Text[]; } interface Section { type: 'section'; mode?: 'left' | 'right'; text: Text | Paragraph; accessory?: Image | Button; } interface Container { type: 'container'; elements: Image[]; } interface Image { type: 'image'; size?: 'lg' | 'sm'; src: string; alt?: string; circle?: boolean; } interface Button { type: 'button'; theme?: Button.Theme; value?: string; text: Text; click?: string; } namespace Button { const Theme: readonly ["primary", "secondary", "warning", "danger", "info", "none", "success"]; type Theme = typeof Theme[number]; } interface ImageGroup { type: 'image-group'; elements: Image[]; } interface Header { type: 'header'; text: Text; } interface Divider { type: 'divider'; } interface Invite { type: 'invite'; code: string; } interface ActionGroup { type: 'action-group'; elements: Button[]; } interface Context { type: 'context'; elements: (Text | Image)[]; } interface File { type: 'file' | 'audio' | 'video'; src: string; title: string; cover?: string; } interface Countdown { type: 'countdown'; endTime: number; startTime: number; mode: 'day' | 'hour' | 'second'; } } export interface User { id: string; username: string; identify_num: string; avatar: string; online: boolean; bot?: boolean; roles: number[]; vip_avatar?: string; is_vip?: boolean; mobile_verified: boolean; joined_at?: number; active_time?: number; status: UserStatus; } export declare enum UserStatus { normal = 0, normal_1 = 1, banned = 10 } export interface Self extends User { status: UserStatus; mobile_verified: boolean; system: boolean; mobile_prefix: string; mobile: string; invited_count: number; } export interface Author extends User { roles: number[]; nickname?: string; } export interface Attachment { type: AttachmentType; name: string; url: string; file_type: string; size: number; duration: number; width: number; height: number; } export interface Notice { type: NoticeType; body: NoticeBody; } export interface Channel { id: string; name: string; user_id: string; user_info?: User; guild_id: string; is_category: boolean; parent_id: string; topic: string; type: 0 | 1 | 2; level: number; slow_mode?: 0 | 5000 | 10000 | 15000 | 30000 | 60000 | 120000 | 300000 | 600000 | 900000 | 1800000 | 3600000 | 7200000 | 21600000; has_password?: boolean; limit_amount: number; permission_overwrites?: Overwrite[]; permission_users?: any[]; permission_sync?: 0 | 1; voice_quality?: '1' | '2' | '3'; server_url?: string; children?: string[]; } export interface NoticeBody extends Channel, MessageMeta, GuildRole { value: string; msg_id: string; channel_type: 'GROUP' | 'PERSON'; author_id: string; target_id: string; channel_id: string; operator_id: string; emoji: Emoji; content: string; icon: string; notify_type: number; region: string; enable_open: number; openId: number; default_channel_id: string; welcome_channel_id: string; updated_at: number; joined_at: number; exited_at: number; deleted_at: number; nickname: string; chat_code: string; event_time: number; guilds: string[]; } export interface ChannelRoleIndex { permission_overwrites: Overwrite; permission_users: List; permission_sync: 0 | 1; } export interface ChannelRole { user_id?: string; role_id?: string; allow: number; deny: number; } export interface Emoji { id: string; name: string; } export interface Overwrite { role_id: number; allow: number; deny: number; } export interface ListMeta { page: number; page_total: number; page_size: number; total: number; } export interface List { items: T[]; meta: ListMeta; sort: Partial>; } export interface Guild { id: string; name: string; topic: string; master_id: string; is_master: boolean; icon: string; invite_enabled: number; notify_type: number; region: string; enable_open: number; openId: string; default_channel_id: string; welcome_channel_id: string; } export interface GuildList extends List { } export interface GuildUser extends User { joined_at: number; active_time: number; is_master: boolean; abbr: string; } export interface GuildUserList extends List { user_count: number; online_count: number; offline_count: number; } interface Pagination { page?: number; page_size?: number; sort?: string[]; } interface GuildMute { type: GuildMute.Type; user_ids: string[]; } export interface GuildRole { role_id: number; name: string; color: number; position: number; hoist: 0 | 1; mentionable: 0 | 1; permissions: number; } export interface GuildRoleReturn { user_id: string; guild_id: string; roles: number[]; } export declare enum Permissions { GUILD_ADMIN = 0, GUILD_MANAGE = 1, GUILD_LOG = 2, GUILD_INVITE_CREATE = 3, GUILD_INVITE_MANAGE = 4, CHANNEL_MANAGE = 5, GUILD_USER_KICK = 6, GUILD_USER_BAN = 7, GUILD_EMOJI_MANAGE = 8, GUILD_USER_NAME_CHANGE = 9, GUILD_ROLE_MANAGE = 10, CHANNEL_VIEW = 11, CHANNEL_MESSAGE = 12, CHANNEL_MANAGE_MESSAGE = 13, CHANNEL_UPLOAD = 14, CHANNEL_VOICE_CONNECT = 15, CHANNEL_VOICE_MANAGE = 16, CHANNEL_MESSAGE_AT_ALL = 17, CHANNEL_MESSAGE_REACTION_CREATE = 18, CHANNEL_MESSAGE_REACTION_FOLLOW = 19, CHANNEL_VOICE_CONNECT_PASSIVE = 20, CHANNEL_VOICE_SPEAK_KEY_ONLY = 21, CHANNEL_VOICR_SPEAK_FREE = 22, CHANNEL_VOICE_SPEAK = 23, GUILD_USER_DEAFEN = 24, GUILD_USER_MUTEGUILD_USER_NAME_CHANGE_OTHER = 25, GUILD_USER_NAME_CHANGE_OTHER = 26, CHANNEL_VOICE_BGM = 27 } export declare function hasPermission(permissions: number, permission: Permissions): boolean; export declare namespace GuildMute { enum Type { mic = 1, headset = 2 } } export interface GuildMuteList { mic: GuildMute; headset: GuildMute; } export interface GuildBoost { user_id: string; guild_id: string; start_time: number; end_time: number; user: User; } export interface Game { id: number; name: string; type: 0 | 1 | 2; options: string; kmhook_admin: boolean; process_name: string[]; product_name: string[]; icon: string; } export interface AccessToken { access_token: string; expires_in?: number; token_type: 'Bearer'; scope: string; } export interface Intimacy { img_url: string; social_info: string; last_read: number; score: number; img_list: { id: string; url: string; }[]; } export interface Invite { guild_id: string; channel_id: string; url_code: string; url: string; user: User; } export interface BlackList { user_id: string; created_time: number; remark: string; user: User; } export interface Internal { getGuildList(param?: Pagination): Promise>; getGuildView(param: { guild_id: string; }): Promise; getGuildUserList(param: { guild_id: string; } & Pagination): Promise; setGuildUserNickname(param: { guild_id: string; user_id: string; nickname: string; }): Promise; leaveGuild(param: { guild_id: string; }): Promise; kickoutGuildUser(param: { guild_id: string; target_id: string; }): Promise; getGuildMuteList(param: { guild_id: string; }): Promise; createGuildMute(param: { guild_id: string; user_id: string; type: GuildMute.Type; }): Promise; deleteGuildMute(param: { guild_id: string; user_id: string; type: GuildMute.Type; }): Promise; getGuildBoostHistory(param: { guild_id: string; start_time: number; end_time: number; }): Promise>; getChannelList(param: { guild_id: string; } & Pagination): Promise>; getChannelView(param: { target_id: string; }): Promise; createChannel(param: { guild_id: string; parent_id?: string; name: string; type?: number; limit_amount?: number; voice_quality?: string; is_category?: 0 | 1; }): Promise; updateChannel(param: { channel_id: string; name?: string; topic?: string; slow_mode?: 0 | 5000 | 10000 | 15000 | 30000 | 60000 | 120000 | 300000 | 600000 | 900000 | 1800000 | 3600000 | 7200000 | 21600000; }): Promise; deleteChannel(param: { channel_id: string; }): Promise; getChannelUserList(param: { channel_id: string; }): Promise>; kickChannelUser(param: { channel_id: string; user_id: string; }): Promise; moveChannelUser(param: { target_id: string; user_ids: []; }): Promise; getChannelRoleIndex(param: { channel_id: string; }): Promise; createChannelRole(param: { channel_id: string; type?: 'user_id'; value?: string; }): Promise>; createChannelRole(param: { channel_id: string; type: 'role_id'; value?: string; }): Promise>; updateChannelRole(param: { channel_id: string; type?: 'user_id'; value?: string; allow?: number; deny?: number; }): Promise>; updateChannelRole(param: { channel_id: string; type: 'role_id'; value?: string; allow?: number; deny?: number; }): Promise>; deleteChannelRole(param: { channel_id: string; type?: 'role_id' | 'user_id'; value?: string; }): Promise; getMessageList(param: { target_id: string; msg_id?: string; pin?: 0 | 1; flag?: 'before' | 'around' | 'after'; } & Pagination): Promise>; getMessageView(param: { msg_id: string; }): Promise; createMessage(param: { type?: Type; target_id: string; content: string; quote?: string; nonce?: string; temp_target_id?: string; }): Promise; updateMessage(param: { msg_id: string; content: string; quote?: string; temp_target_id?: string; }): Promise; deleteMessage(param: { msg_id: string; }): Promise; getMessageReactionList(param: { msg_id: string; emoji: string; }): Promise; addMessageReaction(param: { msg_id: string; emoji: string; }): Promise; deleteMessageReaction(param: { msg_id: string; emoji: string; user_id?: string; }): Promise; getChannelJoinedUserList(param: { guild_id: string; user_id: string; } & Pagination): Promise>; getPrivateChatList(param?: Pagination): Promise>>; getPrivateChatView(param: { chat_code: string; }): Promise; createPrivateChat(param: { target_id: string; }): Promise; deletePrivateChat(param: { chat_code: string; }): Promise; getDirectMessageList(param: { target_id?: string; chat_code?: string; msg_id?: string; flag?: 'before' | 'around' | 'after'; } & Pagination): Promise<{ items: Message[]; }>; createDirectMessage(param: { target_id?: string; chat_code?: string; type?: Type; content: string; quote?: string; nonce?: string; }): Promise; updateDirectMessage(param: { msg_id: string; content: string; quote?: string; }): Promise; deleteDirectMessage(param: { msg_id: string; }): Promise; getDirectMessageReactionList(param: { msg_id: string; emoji?: string; }): Promise; addDirectMessageReaction(param: { msg_id: string; emoji: string; }): Promise; deleteDirectMessageReaction(param: { msg_id: string; emoji: string; user_id?: string; }): Promise; getGateway(param: { compress?: 0 | 1; }): Promise<{ url: string; }>; getToken(param: { grant_type: 'authorization_code'; client_id: string; client_secret: string; code: string; redirect_uri: string; }): Promise; getUserMe(): Promise; getUserView(param: { user_id: string; guild_id?: string; }): Promise; offline(): Promise; getGuildRoleList(param: { guild_id: string; } & Pagination): Promise>; createGuildRole(param: { name?: string; guild_id: string; }): Promise; updateGuildRole(param: { guild_id: string; role_id: number; } & Partial>): Promise; deleteGuildRole(param: { guild_id: string; role_id: number; }): Promise; grantGuildRole(param: { guild_id: string; user_id?: string; role_id: number; }): Promise; revokeGuildRole(param: { guild_id: string; user_id?: string; role_id: number; }): Promise; getIntimacy(param: { user_id: string; }): Promise; updateIntimacy(param: { user_id: string; score?: number; social_info?: string; img_id?: string; }): Promise; getGuildEmojiList(param?: Pagination): Promise>; updateGuildEmoji(param: { name: string; id: string; }): Promise; deleteGuildEmoji(param: { id: string; }): Promise; getInviteList(param: { guild_id?: string; channel_id?: string; } & Pagination): Promise>; createInvite(param: { guild_id?: string; channel_id?: string; duration?: number; setting_times?: number; }): Promise<{ url: string; }>; deleteInvite(param: { url_code: string; guild_id?: string; channel_id?: string; }): Promise; getBlacklist(param: { guild_id: string; } & Pagination): Promise>; createBlacklist(param: { guild_id: string; target_id: string; remark?: string; del_msg_days?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7; }): Promise; deleteBlacklist(param: { guild_id: string; target_id: string; }): Promise; getGameList(param?: { type?: 0 | 1 | 2; }): Promise>; createGame(param: { name: string; icon?: string; }): Promise>; updateGame(param: { id: number; name?: string; icon?: string; }): Promise>; deleteGame(param: { id: number; }): Promise; createGameActivity(param: { id: number; data_type: 1 | 2; software?: 'cloudmusic' | 'qqmusic' | 'kugou'; singer?: string; music_name?: string; }): Promise; deleteGameActivity(param: { data_type: 1 | 2; }): Promise; hasPermission(permissions: number, permission: Permissions): boolean; } export interface Events { 'kook/updated-message'(input: any, bot: KookBot): void; 'kook/updated-private-message'(input: any, bot: KookBot): void; 'kook/deleted-message'(input: any, bot: KookBot): void; 'kook/deleted-private-message'(input: any, bot: KookBot): void; 'kook/added-reaction'(input: any, bot: KookBot): void; 'kook/private-added-reaction'(input: any, bot: KookBot): void; 'kook/deleted-reaction'(input: any, bot: KookBot): void; 'kook/private-deleted-reaction'(input: any, bot: KookBot): void; 'kook/updated-channel'(input: any, bot: KookBot): void; 'kook/deleted-channel'(input: any, bot: KookBot): void; 'kook/pinned-message'(input: any, bot: KookBot): void; 'kook/unpinned-message'(input: any, bot: KookBot): void; 'kook/joined-guild'(input: any, bot: KookBot): void; 'kook/exited-guild'(input: any, bot: KookBot): void; 'kook/updated-guild'(input: any, bot: KookBot): void; 'kook/deleted-guild'(input: any, bot: KookBot): void; 'kook/self-joined-guild'(input: any, bot: KookBot): void; 'kook/self-exited-guild'(input: any, bot: KookBot): void; 'kook/update-guild-member'(input: any, bot: KookBot): void; 'kook/guild-member-online'(input: any, bot: KookBot): void; 'kook/guild-member-offline'(input: any, bot: KookBot): void; 'kook/added-role'(input: any, bot: KookBot): void; 'kook/deleted-role'(input: any, bot: KookBot): void; 'kook/updated-role'(input: any, bot: KookBot): void; 'kook/added-block-list'(input: any, bot: KookBot): void; 'kook/deleted-block-list'(input: any, bot: KookBot): void; 'kook/added-emoji'(input: any, bot: KookBot): void; 'kook/updated-emoji'(input: any, bot: KookBot): void; 'kook/joined-channel'(input: any, bot: KookBot): void; 'kook/exited-channel'(input: any, bot: KookBot): void; 'kook/user-updated'(input: any, bot: KookBot): void; 'kook/message-btn-click'(input: any, bot: KookBot): void; } export declare class Internal { private http; constructor(http: HTTP); static define(name: string, method: HTTP.Method, path: string): void; } export {};