import type { EventHandle, ResponseHandler, SRWebsocketOptions, SocketHandle, WSSendParam, WSSendReturn } from './Interfaces.js'; import WebSocket, { ClientOptions } from 'ws'; import { SREventBus } from './SREventBus.js'; export declare class SRWebsocket { #private; debug: boolean; eventBus: SREventBus; SRWebsocketOptions: { baseUrl: string; accessToken: string; ClientOptions: ClientOptions; receive: 'CQCode' | 'JSON'; }; eventSocket?: WebSocket; apiSocket?: WebSocket; echoMap: Map; constructor(SRWebsocketOptions: SRWebsocketOptions, debug?: boolean); connect(): void; disconnect(): void; reconnect(): void; connectEvent(): void; connectApi(): void; disconnectEvent(): void; disconnectApi(): void; /** * 发送API请求 * @param method API 端点 * @param params 请求参数 */ send(method: T, params: WSSendParam[T]): Promise; /** * 注册监听方法 * @param event * @param handle * @return 用于当作参数调用 [off]{@link off} 解除监听 */ on(event: T, handle: EventHandle): this; /** * 只执行一次 * @param event * @param handle * @return 用于当作参数调用 [off]{@link off} 解除监听 */ once(event: T, handle: EventHandle): this; /** * 解除监听方法 * @param event * @param handle */ off(event: T, handle: EventHandle): this; /** * 手动模拟触发某个事件 * @param type * @param context */ emit(type: T, context: SocketHandle[T]): this; set_group_ban(params: WSSendParam['set_group_ban']): Promise<{}>; clean_cache(): Promise<{}>; clear_messages(params: WSSendParam['clear_messages']): Promise<{}>; create_group_file_folder(params: WSSendParam['create_group_file_folder']): Promise<{ folder_id: string; parent_folder_id: string; folder_name: string; create_time: number; modify_time: number; creator_uin: number; modifier_uin: number; }>; /** * @deprecated 频道支持存在变动,请不要使用 */ create_guild_role(params: WSSendParam['create_guild_role']): Promise; delete_essence_message(params: WSSendParam['delete_essence_message']): Promise<{}>; delete_group_file(params: WSSendParam['delete_group_file']): Promise<{}>; delete_group_folder(params: WSSendParam['delete_group_folder']): Promise<{}>; /** * @deprecated 频道支持存在变动,请不要使用 */ delete_guild_role(params: WSSendParam['delete_guild_role']): Promise; delete_message(params: WSSendParam['delete_message']): Promise<{}>; download_file(params: WSSendParam['download_file']): Promise<{ file: string; md5: string; }>; fav_add_image_message(params: WSSendParam['fav.add_image_message']): Promise<{ picUrl: string; picId: string; id: string; }>; fav_get_item_content(params: WSSendParam['fav.get_item_content']): Promise<{ content: string; }>; fav_get_item_list(params: WSSendParam['fav.get_item_list']): Promise<{ items: { id: string; authorType: number; author: number; authorName: string; groupName: string; groupId: number; clientVersion: string; time: number; }[]; }>; get_cookies(params: WSSendParam['get_cookies']): Promise<{ cookies: string; bigdata_ticket: { key: string; sig: string; }; }>; get_credentials(params: WSSendParam['get_credentials']): Promise<{ token: string; cookies: string; }>; get_csrf_token(params: WSSendParam['get_csrf_token']): Promise<{ token: string; }>; get_device_battery(): Promise<{ battery: number; scale: number; status: number; }>; get_essence_message_list(params: WSSendParam['get_essence_message_list']): Promise<{ sender_id: number; sender_nick: string; sender_time: number; operator_id: number; operator_nick: string; operator_time: number; message_id: number; message_seq: number; real_id: number; message_content: import("./Interfaces.js").ReceiveMessageArray; }[]>; get_forward_message(params: WSSendParam['get_forward_message']): Promise<{ messages: { time: number; message_type: "private" | "group"; message_id: number; message_id_qq: number; message_seq: number; real_id: number; sender: { user_id: number; nickname: string; sex: "male" | "female" | "unknown"; age: number; uid: string; tiny_id: string; }; message: import("./Interfaces.js").ReceiveMessageArray; group_id: number; peer_id: number; }[]; }>; get_friend_list(params?: WSSendParam['get_friend_list']): Promise<{ user_id: number; user_name: string; user_displayname: string; user_remark: string; age: number; gender: number; group_id: number; platform: string; term_type: number; }[]>; get_friend_system_message(): Promise<{ request_id: number; requester_uin: number; requester_nick: string; source: string; sub_id: number; sub_src_id: number; message: string; source_group_name: string; source_group_id: number; flag: string; sex: "male" | "female" | "unknown"; age: number; msg_detail: string; status: string; }[]>; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_channel_list(params: WSSendParam['get_guild_channel_list']): Promise; get_group_file_system_info(params: WSSendParam['get_group_file_system_info']): Promise<{ file_count: number; limit_count: number; used_space: number; total_space: number; }>; get_group_file_url(params: WSSendParam['get_group_file_url']): Promise<{ url: string; }>; get_group_message_history(params: WSSendParam['get_group_message_history']): Promise<{ messages: { time: number; message_type: "group"; message_id: number; message_id_qq: bigint; message_seq: number; real_id: number; sender: { user_id: number; nickname: string; sex: "male" | "female" | "unknown"; age: number; uid: string; tiny_id: string; }; message: import("./Interfaces.js").ReceiveMessageArray; group_id: number; peer_id: number; }[]; }>; get_group_notice(params: WSSendParam['get_group_notice']): Promise<{ sender_id: number; publish_time: number; message: { text: string; images: { height: string; width: string; id: string; }[]; }; }[]>; get_group_at_all_remain(params: WSSendParam['get_group_at_all_remain']): Promise<{ can_at_all: boolean; remain_at_all_count_for_group: number; remain_at_all_count_for_uin: number; }>; get_group_root_files(params: WSSendParam['get_group_root_files']): Promise; get_group_files_by_folder(params: WSSendParam['get_group_files_by_folder']): Promise; get_group_system_message(): Promise<{ invited_requests: { request_id: number; invitor_uin: number; invitor_nick: string; group_id: number; group_name: string; checked: boolean; actor: number; requester_uin: number; requester_nick: string; message: string; flag: string; }[]; join_requests: { request_id: number; invitor_uin: number; invitor_nick: string; group_id: number; group_name: string; checked: boolean; actor: number; requester_uin: number; requester_nick: string; message: string; flag: string; }[]; }>; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_feeds(params: WSSendParam['get_guild_feeds']): Promise; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_list(params: WSSendParam['get_guild_list']): Promise; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_member_list(params: WSSendParam['get_guild_member_list']): Promise; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_member_profile(params: WSSendParam['get_guild_member_profile']): Promise; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_meta_by_guest(params: WSSendParam['get_guild_meta_by_guest']): Promise; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_roles(params: WSSendParam['get_guild_roles']): Promise; /** * @deprecated 频道支持存在变动,请不要使用 */ get_guild_service_profile(): Promise; get_history_message(params: WSSendParam['get_history_message']): Promise<{ messages: (({ message_type: "group"; group_id: number; } | { message_type: "private"; target_id: number; }) & { time: number; message_id: number; message_id_qq: bigint; message_seq: number; real_id: number; sender: { user_id: number; nickname: string; sex: "male" | "female" | "unknown"; age: number; uid: string; tiny_id: string; }; message: import("./Interfaces.js").ReceiveMessageArray; peer_id: number; })[]; }>; /** * @warning 该接口并未出现在官方文档内,未知作用 */ get_http_cookies(params: WSSendParam['get_http_cookies']): Promise<{ token: string; cookies: string; bigdata_ticket: { key: string; sig: string; }; }>; get_image(params: WSSendParam['get_image']): Promise<{ size: number; filename: string; url: string; }>; /** * @warning 方法返回的数据锁定为 空数组 */ get_latest_events(): Promise<{}>; get_login_info(): Promise<{ user_id: number; nickname: string; }>; /** * @warning 该接口并未出现在官方文档内,未知作用 */ get_model_show(params: WSSendParam['get_model_show']): Promise; _get_model_show(params: WSSendParam['_get_model_show']): Promise<{ variants: { model_show: string; need_pay: boolean; }[]; }>; get_message(params: WSSendParam['get_message']): Promise<{ time: number; message_type: "private" | "group"; message_id: number; message_id_qq: bigint; message_seq: number; real_id: number; sender: { user_id: number; nickname: string; sex: "male" | "female" | "unknown"; age: number; uid: string; tiny_id: string; }; message: import("./Interfaces.js").ReceiveMessageArray; group_id: number; peer_id: number; }>; get_not_joined_group_info(params: WSSendParam['get_not_joined_group_info']): Promise<{ group_id: number; max_member_cnt: number; member_count: number; group_name: string; group_desc: string; owner: number; create_time: number; group_flag: number; group_flag_ext: number; }>; _get_online_clients(): Promise<{ clients: { app_id: number; device_name: string; device_kind: string; }[]; }>; /** * @warning 该接口并未出现在官方文档内,未知作用 */ get_user_info(params: WSSendParam['get_user_info']): Promise; get_prohibited_member_list(params: WSSendParam['get_prohibited_member_list']): Promise<{ user_id: number; time: number; }[]>; get_record(params: WSSendParam['get_record']): Promise<{ file: string; url: string; }>; get_self_info(): Promise<{ user_id: number; user_name: string; user_displayname: string; }>; get_status(): Promise; get_stranger_info(params: WSSendParam['get_stranger_info']): Promise<{ user_id: number; nickname: string; age: number; sex: "male" | "female" | "unknown"; level: number; login_days: number; qid: string; vote: number; wzry_honor: string; ext: { add_src_id: number; add_src_name: string; add_sub_src_id: number; allow_cal_interactive: boolean; allow_click: boolean; allow_people_see: boolean; auth_state: number; big_club_vip_open: number; hollywood_vip_open: number; qq_vip_open: number; super_qq_open: number; super_vip_open: number; voted: number; baby_q_switch: boolean; bind_phone_info: string; card_id: number; card_type: number; category: number; clothes_id: number; cover_url: string; declaration: null; default_card_id: number; diy_complicated_info: string; diy_default_text: string; diy_text: string; diy_text_degree: number; diy_text_font_id: number; diy_text_height: number; diy_text_width: number; diy_text_loc_x: number; diy_text_loc_y: number; dress_up_is_on: boolean; enc_id: null; enlarge_qzone_pic: number; extend_friend_entry_add_friend: number; extend_friend_entry_contact: number; extend_friend_flag: number; extend_friend_question: number; extend_friend_voice_duration: number; favorite_source: number; feed_preview_time: number; font_id: number; font_type: number; qid_bg_url: string; qid_color: string; qid_logo_url: string; qq_card_is_on: boolean; school_id: null; school_name: null; school_verified_flag: boolean; show_publish_button: boolean; singer: string; song_dura: number; song_id: string; song_name: string; }; }>; get_supported_actions(): Promise; get_group_honor_info(params: WSSendParam['get_group_honor_info']): Promise<{ group_id: number; current_talkative: { user_id: number; nickname: string; avatar: string; day_count: number; id: number; description: string; }; talkative_list: { user_id: number; nickname: string; avatar: string; day_count: number; id: number; description: string; }[]; performer_list: { user_id: number; nickname: string; avatar: string; day_count: number; id: number; description: string; }[]; legend_list: []; strong_newbie_list: []; emotion_list: { user_id: number; nickname: string; avatar: string; day_count: number; id: number; description: string; }[]; all: { user_id: number; nickname: string; avatar: string; day_count: number; id: number; description: string; }[]; }>; get_group_info(params: WSSendParam['get_group_info']): Promise<{ group_id: number; group_name: string; group_remark: string; group_uin: number; admins: number[]; class_text: null; is_frozen: boolean; max_member: number; member_num: number; member_count: number; max_member_count: number; }>; get_group_list(params: WSSendParam['get_group_list']): Promise<{ group_id: number; group_name: string; group_remark: string; group_uin: number; admins: number[]; class_text: null; is_frozen: boolean; max_member: number; member_num: number; member_count: number; max_member_count: number; }[]>; get_group_member_info(params: WSSendParam['get_group_member_info']): Promise; get_group_member_list(params: WSSendParam['get_group_member_list']): Promise; get_uid(params: WSSendParam['get_uid']): Promise<{ [key: string]: string; }>; get_uin_by_uid(params: WSSendParam['get_uin_by_uid']): Promise<{ [key: string]: string; }>; get_version(): Promise<{ app_full_name: string; app_name: "Shamrock"; app_version: string; impl: "shamrock"; version: string; onebot_version: "11"; }>; get_weather(params: WSSendParam['get_weather']): Promise<{ posterStore: { weatherInfo: import("./Interfaces.js").WeatherResponse; qrcode: string; poster: string; swiperIndex: number; }; weeklyStore: { festivals: [{ type: number; name: string; date: number; summary: string; pic: number; }]; weekBegin: number; weekEnd: number; weather: import("./Interfaces.js").WeatherResponse; }; }>; get_weather_city_code(params: WSSendParam['get_weather_city_code']): Promise<{ adcode: number; province: string; city: string; }[]>; poke(params: WSSendParam['poke']): Promise<{}>; is_blacklist_uin(params: WSSendParam['is_blacklist_uin']): Promise<{ is: boolean; }>; set_group_kick(params: WSSendParam['set_group_kick']): Promise<{}>; set_group_leave(params: WSSendParam['set_group_leave']): Promise<{}>; set_group_card(params: WSSendParam['set_group_card']): Promise<{}>; /** * @warning 无效果并且没有返回数据 */ set_group_name(params: WSSendParam['set_group_name']): Promise<{}>; set_group_remark(params: WSSendParam['set_group_remark']): Promise<{}>; handle_quick_operation_async(params: { self_id: number; context: SocketHandle['message']; operation: WSSendParam['.handle_quick_operation_async']['operation']; }): Promise<{}>; rename_group_folder(params: WSSendParam['rename_group_folder']): Promise<{}>; request_upload_group_image(params: WSSendParam['request_upload_group_image']): Promise<{ ukey: []; exist: boolean; file_id: number; up_ip: number[]; up_port: number[]; }>; restart_me(): Promise; /** * @warning 该接口并未出现在官方文档内,未知作用 */ scan_qrcode(params: WSSendParam['scan_qrcode']): Promise; send_forward_message(params: WSSendParam['send_forward_message']): Promise<{ message_id: number; res_id: string; }>; send_group_forward_message(params: WSSendParam['send_group_forward_message']): Promise<{ message_id: number; res_id: string; }>; send_group_message(params: WSSendParam['send_group_message']): Promise<{ message_id: number; time: number; }>; send_group_announcement(params: WSSendParam['send_group_announcement']): Promise; send_group_sign(params: WSSendParam['send_group_sign']): Promise<{}>; /** * @deprecated 频道支持存在变动,请不要使用 */ send_guild_message(params: WSSendParam['send_guild_message']): Promise; /** * @warning 此方法锁定返回成功 */ send_like(params: WSSendParam['send_like']): Promise<{}>; send_message(params: WSSendParam['send_message']): Promise<{ message_id: number; time: number; }>; send_message_by_resid(params: WSSendParam['send_message_by_resid']): Promise<{ message_id: number; res_id: string; }>; send_private_forward_message(params: WSSendParam['send_private_forward_message']): Promise<{ message_id: number; res_id: string; }>; send_private_message(params: WSSendParam['send_private_message']): Promise<{ message_id: number; res_id: string; }>; set_essence_message(params: WSSendParam['set_essence_message']): Promise<{}>; set_friend_add_request(params: WSSendParam['set_friend_add_request']): Promise<{}>; set_group_add_request(params: WSSendParam['set_group_add_request']): Promise<{}>; set_group_admin(params: WSSendParam['set_group_admin']): Promise<{}>; set_group_comment_face(params: WSSendParam['set_group_comment_face']): Promise<{}>; set_group_special_title(params: WSSendParam['set_group_special_title']): Promise<{}>; set_group_whole_ban(params: WSSendParam['set_group_whole_ban']): Promise<{}>; /** * @deprecated 频道支持存在变动,请不要使用 */ set_guild_member_role(params: WSSendParam['set_guild_member_role']): Promise; _set_model_show(params: WSSendParam['_set_model_show']): Promise<{}>; set_qq_profile(params: WSSendParam['set_qq_profile']): Promise<{}>; /** * @deprecated 暂未实现 */ sign_ark_message(params: WSSendParam['sign_ark_message']): Promise; switch_account(params: WSSendParam['switch_account']): Promise<{}>; /** * @deprecated 频道支持存在变动,请不要使用 */ update_guild_role(params: WSSendParam['update_guild_role']): Promise; upload_file_to_shamrock(params: WSSendParam['upload_file_to_shamrock']): Promise<{ file_size: number; finish: boolean; path: string; }>; upload_group_file(params: WSSendParam['upload_group_file']): Promise; upload_multi_message(params: WSSendParam['upload_multi_message']): Promise<{ resId: string; filename: string; summary: string; desc: string; }>; upload_nt_res(params: WSSendParam['upload_nt_res']): Promise<{ files: { mode_id: number; name: string; size: number; md5: string; uuid: string; sub_id: string; sha: string; }[]; }>; upload_private_file(params: WSSendParam['upload_private_file']): Promise<{ msg_id: number; bizid: number; md5: string; sha: string; sha3: string; file_id: string; }>; }