export type BaseCheckResult = ValidCheckResult | InvalidCheckResult;

export interface ValidCheckResult {
  valid: true;
}

export interface InvalidCheckResult {
  valid: false;
  message: string;
}

export const ActionName = {
  TestAutoRegister01: 'test_auto_register_01',
  TestAutoRegister02: 'test_auto_register_02',
  // 所有 Normal Stream Api 表示并未流传输 表示与流传输有关
  CleanStreamTempFile: 'clean_stream_temp_file',

  // 所有 Upload/Download Stream Api 应当 _stream 结尾
  TestDownloadStream: 'test_download_stream',
  UploadFileStream: 'upload_file_stream',
  DownloadFileStream: 'download_file_stream',
  DownloadFileRecordStream: 'download_file_record_stream',
  DownloadFileImageStream: 'download_file_image_stream',

  DelGroupAlbumMedia: 'del_group_album_media',
  SetGroupAlbumMediaLike: 'set_group_album_media_like',
  DoGroupAlbumComment: 'do_group_album_comment',
  GetGroupAlbumMediaList: 'get_group_album_media_list',
  UploadImageToQunAlbum: 'upload_image_to_qun_album',
  GetQunAlbumList: 'get_qun_album_list',
  SetGroupTodo: 'set_group_todo',
  SetGroupKickMembers: 'set_group_kick_members',
  SetGroupRobotAddOption: 'set_group_robot_add_option',
  SetGroupAddOption: 'set_group_add_option',
  SetGroupSearch: 'set_group_search',
  // new extends 完全差异OneBot类别
  GetDoubtFriendsAddRequest: 'get_doubt_friends_add_request',
  SetDoubtFriendsAddRequest: 'set_doubt_friends_add_request',
  // napcat
  GetRkeyEx: 'get_rkey',
  GetRkeyServer: 'get_rkey_server',
  SetGroupRemark: 'set_group_remark',
  NapCat_GetPrivateFileUrl: 'get_private_file_url',
  ClickInlineKeyboardButton: 'click_inline_keyboard_button',
  GetUnidirectionalFriendList: 'get_unidirectional_friend_list',
  // onebot 11
  SendPrivateMsg: 'send_private_msg',
  SendGroupMsg: 'send_group_msg',
  SendMsg: 'send_msg',
  DeleteMsg: 'delete_msg',
  GetMsg: 'get_msg',
  GoCQHTTP_GetForwardMsg: 'get_forward_msg',
  SendLike: 'send_like',
  SetGroupKick: 'set_group_kick',
  SetGroupBan: 'set_group_ban',
  // SetGroupAnoymousBan : 'set_group_anonymous_ban',
  SetGroupWholeBan: 'set_group_whole_ban',
  SetGroupAdmin: 'set_group_admin',
  // SetGroupAnoymous : 'set_group_anonymous',
  SetGroupCard: 'set_group_card',
  SetGroupName: 'set_group_name',
  SetGroupLeave: 'set_group_leave',
  SetSpecialTitle: 'set_group_special_title',
  SetFriendAddRequest: 'set_friend_add_request',
  SetFriendRemark: 'set_friend_remark',
  SetGroupAddRequest: 'set_group_add_request',
  GetLoginInfo: 'get_login_info',
  GoCQHTTP_GetStrangerInfo: 'get_stranger_info',
  GetFriendList: 'get_friend_list',
  GetGroupInfo: 'get_group_info',
  GetGroupList: 'get_group_list',
  GetGroupMemberInfo: 'get_group_member_info',
  GetGroupMemberList: 'get_group_member_list',
  GetGroupHonorInfo: 'get_group_honor_info',
  GetCookies: 'get_cookies',
  GetCSRF: 'get_csrf_token',
  GetCredentials: 'get_credentials',
  GetRecord: 'get_record',
  GetImage: 'get_image',
  CanSendImage: 'can_send_image',
  CanSendRecord: 'can_send_record',
  GetStatus: 'get_status',
  GetVersionInfo: 'get_version_info',
  Reboot: 'set_restart',
  CleanCache: 'clean_cache',
  Exit: 'bot_exit',
  // go-cqhttp
  SetQQProfile: 'set_qq_profile',
  // QidianGetAccountInfo : 'qidian_get_account_info',
  GoCQHTTP_GetModelShow: '_get_model_show',
  GoCQHTTP_SetModelShow: '_set_model_show',
  GetOnlineClient: 'get_online_clients',
  // GetUnidirectionalFriendList : 'get_unidirectional_friend_list',
  GoCQHTTP_DeleteFriend: 'delete_friend',
  // DeleteUnidirectionalFriendList : 'delete_unidirectional_friend',
  GoCQHTTP_MarkMsgAsRead: 'mark_msg_as_read',
  GoCQHTTP_SendGroupForwardMsg: 'send_group_forward_msg',
  GoCQHTTP_SendPrivateForwardMsg: 'send_private_forward_msg',
  GoCQHTTP_GetGroupMsgHistory: 'get_group_msg_history',
  OCRImage: 'ocr_image',
  IOCRImage: '.ocr_image',
  GetGroupSystemMsg: 'get_group_system_msg',
  GoCQHTTP_GetEssenceMsg: 'get_essence_msg_list',
  GoCQHTTP_GetGroupAtAllRemain: 'get_group_at_all_remain',
  SetGroupPortrait: 'set_group_portrait',
  SetEssenceMsg: 'set_essence_msg',
  DelEssenceMsg: 'delete_essence_msg',
  GoCQHTTP_SendGroupNotice: '_send_group_notice',
  GoCQHTTP_GetGroupNotice: '_get_group_notice',
  GoCQHTTP_UploadGroupFile: 'upload_group_file',
  GOCQHTTP_DeleteGroupFile: 'delete_group_file',
  GoCQHTTP_CreateGroupFileFolder: 'create_group_file_folder',
  GoCQHTTP_DeleteGroupFileFolder: 'delete_group_folder',
  GoCQHTTP_GetGroupFileSystemInfo: 'get_group_file_system_info',
  GoCQHTTP_GetGroupRootFiles: 'get_group_root_files',
  GoCQHTTP_GetGroupFilesByFolder: 'get_group_files_by_folder',
  GOCQHTTP_GetGroupFileUrl: 'get_group_file_url',
  GOCQHTTP_UploadPrivateFile: 'upload_private_file',
  // GOCQHTTP_ReloadEventFilter : 'reload_event_filter',
  GoCQHTTP_DownloadFile: 'download_file',
  GoCQHTTP_CheckUrlSafely: 'check_url_safely',
  GoCQHTTP_GetWordSlices: '.get_word_slices',
  GoCQHTTP_HandleQuickAction: '.handle_quick_operation',

  // 以下为扩展napcat扩展
  Unknown: 'unknown',
  SetDiyOnlineStatus: 'set_diy_online_status',
  SharePeer: 'ArkSharePeer', // @deprecated
  ShareGroupEx: 'ArkShareGroup', // @deprecated
  // 标准化接口
  SendGroupArkShare: 'send_group_ark_share',
  SendArkShare: 'send_ark_share',
  // RebootNormal : 'reboot_normal', //无快速登录重新启动
  GetRobotUinRange: 'get_robot_uin_range',
  SetOnlineStatus: 'set_online_status',
  GetFriendsWithCategory: 'get_friends_with_category',
  SetQQAvatar: 'set_qq_avatar',
  GetFile: 'get_file',
  ForwardFriendSingleMsg: 'forward_friend_single_msg',
  ForwardGroupSingleMsg: 'forward_group_single_msg',
  TranslateEnWordToZn: 'translate_en2zh',
  SetMsgEmojiLike: 'set_msg_emoji_like',
  GoCQHTTP_SendForwardMsg: 'send_forward_msg',
  MarkPrivateMsgAsRead: 'mark_private_msg_as_read',
  MarkGroupMsgAsRead: 'mark_group_msg_as_read',
  GetFriendMsgHistory: 'get_friend_msg_history',
  CreateCollection: 'create_collection',
  GetCollectionList: 'get_collection_list',
  SetLongNick: 'set_self_longnick',
  GetRecentContact: 'get_recent_contact',
  _MarkAllMsgAsRead: '_mark_all_as_read',
  GetProfileLike: 'get_profile_like',
  FetchCustomFace: 'fetch_custom_face',
  FetchEmojiLike: 'fetch_emoji_like',
  GetEmojiLikes: 'get_emoji_likes',
  SetInputStatus: 'set_input_status',
  GetGroupInfoEx: 'get_group_info_ex',
  GetGroupDetailInfo: 'get_group_detail_info',
  GetGroupIgnoreAddRequest: 'get_group_ignore_add_request',
  DelGroupNotice: '_del_group_notice',
  FriendPoke: 'friend_poke',
  GroupPoke: 'group_poke',
  GetPacketStatus: 'nc_get_packet_status',
  GetUserStatus: 'nc_get_user_status',
  GetRkey: 'nc_get_rkey',
  GetGroupShutList: 'get_group_shut_list',

  MoveGroupFile: 'move_group_file',
  TransGroupFile: 'trans_group_file',
  RenameGroupFile: 'rename_group_file',

  GetGuildList: 'get_guild_list',
  GetGuildProfile: 'get_guild_service_profile',

  GetGroupIgnoredNotifies: 'get_group_ignored_notifies',

  SetGroupSign: 'set_group_sign',
  SendGroupSign: 'send_group_sign',
  SendPacket: 'send_packet',
  GetMiniAppArk: 'get_mini_app_ark',
  // UploadForwardMsg : "upload_forward_msg",
  GetAiRecord: 'get_ai_record',
  GetAiCharacters: 'get_ai_characters',
  SendGroupAiRecord: 'send_group_ai_record',

  GetClientkey: 'get_clientkey',

  SendPoke: 'send_poke',

  // Flash (闪传) 扩展
  CreateFlashTask: 'create_flash_task',
  SendFlashMsg: 'send_flash_msg',      // 因为不可能手动构造element，所以不走sendMsg
  GetShareLink: 'get_share_link',
  DownloadFileset: 'download_fileset',
  GetFilesetInfo: 'get_fileset_info',
  GetFlashFileList: 'get_flash_file_list',
  GetFlashFileUrl: 'get_flash_file_url',
  GetFilesetId: 'get_fileset_id',

  // Online File (在线文件) 扩展
  SendOnlineFile: 'send_online_file',
  SendOnlineFolder: 'send_online_folder',
  GetOnlineFileMessages: 'get_online_file_msg',
  ReceiveOnlineFile: 'receive_online_file',
  RefuseOnlineFile: 'refuse_online_file',
  CancelOnlineFile: 'cancel_online_file',
} as const;
