UNPKG

node-vk-api-bot

Version:

A library that helps you to create chat-bot for group or user

199 lines (198 loc) 7.88 kB
import { Objects } from './types/objects.js'; import { flag } from './types/utils.js'; export declare namespace GroupUpdates { export enum UpdateTypes { message_new = "message_new", message_reply = "message_reply", message_edit = "message_edit", message_allow = "message_allow", message_deny = "message_deny", message_typing_state = "message_typing_state", message_event = "message_event", photo_new = "photo_new", photo_comment_new = "photo_comment_new", photo_comment_edit = "photo_comment_edit", photo_comment_restore = "photo_comment_restore", audio_new = "audio_new", video_new = "video_new", video_comment_new = "video_comment_new", video_comment_edit = "video_comment_edit", video_comment_restore = "video_comment_restore", video_comment_delete = "video_comment_delete", wall_post_new = "wall_post_new", wall_repost = "wall_repost", wall_reply_new = "wall_reply_new", wall_reply_edit = "wall_reply_edit", wall_reply_restore = "wall_reply_restore", wall_reply_delete = "wall_reply_delete", like_add = "like_add", like_remove = "like_remove", board_post_new = "board_post_new", board_post_edit = "board_post_edit", board_post_restore = "board_post_restore", board_post_delete = "board_post_delete", market_comment_new = "market_comment_new", market_comment_edit = "market_comment_edit", market_comment_restore = "market_comment_restore", market_comment_delete = "market_comment_delete", market_order_new = "market_order_new", market_order_edit = "market_order_edit", group_leave = "group_leave", group_join = "group_join", user_block = "user_block", user_unblock = "user_unblock", poll_vote_new = "poll_vote_new", group_officers_edit = "group_officers_edit", group_change_settings = "group_change_settings", group_change_photo = "group_change_photo" } export interface Update<T extends UpdateTypes> { type: T; object: UpdateObject[T]; event_id?: string; group_id: number; } namespace utils { type commentEvent<T extends string, O extends object = Objects.WallReply> = O & { [A in `${T}${'' | 'post'}_id`]: number; }; export type PhotoCommentEvent = commentEvent<'photo'>; export type VideoCommentEvent = commentEvent<'video'>; export type WallCommentEvent = commentEvent<'post'>; export type BoardCommentEvent = commentEvent<'topic', Objects.BoardReply>; export type MarketCommentEvent = Objects.WallReply & { market_owner_id: number; item_id: number; }; export type LikeTarget = { liker_id: number; thread_reply_id?: number; post_id?: number; object_type: 'video' | 'photo' | 'comment' | 'note' | 'topic_comment' | 'photo_comment' | 'video_comment' | 'market' | 'market_comment'; } & commentEvent<'object'>; export {}; } type UpdateObject = { [UpdateTypes.message_new]: { message: Objects.Message; client_info: Objects.ClientInfo; }; [UpdateTypes.message_edit]: Objects.Message; [UpdateTypes.message_reply]: Objects.Message; [UpdateTypes.message_allow]: { user_id: number; key: string; }; [UpdateTypes.message_deny]: { user_id: number; }; [UpdateTypes.message_typing_state]: { state: string; from_id: number; to_id: number; }; [UpdateTypes.message_event]: { user_id: number; peer_id: number; event_id: number; converstion_message_id: number; payload: string; }; [UpdateTypes.photo_new]: Objects.Photo; [UpdateTypes.photo_comment_new]: utils.PhotoCommentEvent; [UpdateTypes.photo_comment_edit]: utils.PhotoCommentEvent; [UpdateTypes.photo_comment_restore]: utils.PhotoCommentEvent; [UpdateTypes.audio_new]: Objects.Audio; [UpdateTypes.video_new]: Objects.Video; [UpdateTypes.video_comment_new]: utils.VideoCommentEvent; [UpdateTypes.video_comment_edit]: utils.VideoCommentEvent; [UpdateTypes.video_comment_restore]: utils.VideoCommentEvent; [UpdateTypes.video_comment_delete]: { [_ in `${`${'owner' | 'user' | 'deleter' | 'video'}_` | ''}id`]: number; }; [UpdateTypes.wall_post_new]: Objects.Wall & { postponed_id?: number; }; [UpdateTypes.wall_repost]: Objects.Wall & { postponed_id?: number; }; [UpdateTypes.wall_reply_new]: utils.WallCommentEvent; [UpdateTypes.wall_reply_edit]: utils.WallCommentEvent; [UpdateTypes.wall_reply_restore]: utils.WallCommentEvent; [UpdateTypes.wall_reply_delete]: { [_ in `${`${'owner' | 'deleter' | 'post'}_` | ''}id`]: number; }; [UpdateTypes.like_add]: utils.LikeTarget; [UpdateTypes.like_remove]: utils.LikeTarget; [UpdateTypes.board_post_new]: utils.BoardCommentEvent; [UpdateTypes.board_post_edit]: utils.BoardCommentEvent; [UpdateTypes.board_post_restore]: utils.BoardCommentEvent; [UpdateTypes.board_post_delete]: { [_ in `${`topic${'' | '_owner'}_` | ''}id`]: number; }; [UpdateTypes.market_comment_new]: utils.MarketCommentEvent; [UpdateTypes.market_comment_edit]: utils.MarketCommentEvent; [UpdateTypes.market_comment_restore]: utils.MarketCommentEvent; [UpdateTypes.market_comment_delete]: { [_ in `${`${'owner' | 'user' | 'deleter' | 'item'}_` | ''}id`]: number; }; [UpdateTypes.market_order_new]: Objects.Order; [UpdateTypes.market_order_edit]: Objects.Order; [UpdateTypes.poll_vote_new]: { owner_id: number; poll_id: number; option_id: number; user_id: number; }; [UpdateTypes.group_leave]: { user_id: number; self: flag; }; [UpdateTypes.group_join]: { user_id: number; join_type: 'join' | 'unsure' | 'accepted' | 'approved' | 'request'; }; [UpdateTypes.user_block]: { admin_id: number; user_id: number; unblock_date: number; reason: flag | 2 | 3 | 4; comment: string; }; [UpdateTypes.user_unblock]: { admin_id: number; user_id: number; by_end_date: number; }; [UpdateTypes.group_officers_edit]: { admin_id: number; user_id: number; level_old: flag | 2 | 3; level_new: flag | 2 | 3; }; [UpdateTypes.group_change_settings]: { user_id: number; changes: { [_ in 'title' | 'description' | 'access' | 'screen_name' | `public_${'' | 'sub'}category` | 'age_limits' | `enable_${'status_default' | 'audio' | 'photo' | 'video' | 'market'}`]: { old_value: unknown; new_value: unknown; }; }; }; [UpdateTypes.group_change_photo]: { user_id: number; photo: Objects.Photo; }; }; export type Updates<T extends UpdateTypes = UpdateTypes> = T extends never ? never : Update<T>; export type ApiUpdates = { ts: string; updates: Updates[]; } | { failed: 2 | 3.; } | { failed: 1; ts: string; }; export {}; }