import {z} from 'zod' export type ItemOriginModel = 'brute' | 'phishing' | 'stealer' | 'autoreg' | 'personal' | 'resale' | 'dummy' | 'self_registration' | 'retrieve_via_support'; export type YesNoNoMatterScheme = 'yes' | 'no' | 'nomatter'; export type GetApiMihoyoArgs = {after?: string | undefined, pmin?: number | undefined, pmax?: number | undefined, title?: string | undefined, order_by?: ('price_to_up' | 'price_to_down' | 'pdate_to_down' | 'pdate_to_up' | 'pdate_to_down_upload' | 'pdate_to_up_upload' | 'edate_to_up' | 'edate_to_down' | 'ddate_to_up' | 'ddate_to_down' | 'auto_buy_diff_to_up' | 'auto_buy_diff_to_down') | undefined, 'tag_id[]'?: Array | undefined, 'not_tag_id[]'?: Array | undefined, 'public_tag_id[]'?: Array | undefined, 'not_public_tag_id[]'?: Array | undefined, 'origin[]'?: ('brute' | 'phishing' | 'stealer' | 'autoreg' | 'personal' | 'resale' | 'dummy' | 'self_registration' | 'retrieve_via_support') | undefined, 'not_origin[]'?: Array | undefined, user_id?: number | undefined, nsb?: boolean | undefined, sb?: boolean | undefined, nsb_by_me?: boolean | undefined, sb_by_me?: boolean | undefined, currency?: ('rub' | 'uah' | 'kzt' | 'byn' | 'usd' | 'eur' | 'gbp' | 'cny' | 'try' | 'jpy' | 'brl') | undefined, email_login_data?: boolean | undefined, 'email_provider[]'?: (Array<'other' | 'rambler' | 'outlook' | 'firstmail' | 'notletters' | 'mail_ru'>) | undefined, 'not_email_provider[]'?: ('other' | 'rambler' | 'outlook' | 'firstmail' | 'notletters' | 'mail_ru') | undefined, 'email_type[]'?: (Array<'autoreg' | 'native' | 'no'>) | undefined, parse_same_item_ids?: boolean | undefined, item_domain?: string | undefined, email?: ('yes' | 'no' | 'nomatter') | undefined, ea?: YesNoNoMatterScheme | undefined, region?: (Array<'asia' | 'cht' | 'eu' | 'usa'>) | undefined, not_region?: (Array<'asia' | 'cht' | 'eu' | 'usa'>) | undefined, 'genshin_character[]'?: (Array<10000002 | 10000003 | 10000005 | 10000006 | 10000007 | 10000014 | 10000015 | 10000016 | 10000020 | 10000021 | 10000022 | 10000023 | 10000024 | 10000025 | 10000026 | 10000027 | 10000029 | 10000030 | 10000031 | 10000032 | 10000033 | 10000034 | 10000035 | 10000036 | 10000037 | 10000038 | 10000039 | 10000041 | 10000042 | 10000043 | 10000044 | 10000045 | 10000046 | 10000047 | 10000048 | 10000049 | 10000050 | 10000051 | 10000052 | 10000053 | 10000054 | 10000055 | 10000056 | 10000057 | 10000058 | 10000059 | 10000060 | 10000061 | 10000062 | 10000063 | 10000064 | 10000065 | 10000066 | 10000067 | 10000068 | 10000069 | 10000070 | 10000071 | 10000072 | 10000073 | 10000074 | 10000075 | 10000076 | 10000077 | 10000078 | 10000079 | 10000080 | 10000081 | 10000082 | 10000083 | 10000084 | 10000085 | 10000086 | 10000087 | 10000088 | 10000089 | 10000090 | 10000091 | 10000092 | 10000093 | 10000094 | 10000095 | 10000096 | 10000097 | 10000098 | 10000099 | 10000100 | 10000101 | 10000102 | 10000103 | 10000104 | 10000105 | 10000106 | 10000107 | 10000108 | 10000109 | 10000110 | 10000111 | 10000112 | 10000113 | 10000114 | 10000115 | 10000116 | 10000117 | 10000118 | 10000119 | 10000120 | 10000121 | 10000122 | 10000123 | 10000124 | 10000125 | 10000126 | 10000127 | 10000128 | 10000129 | 10000130 | 10000131 | 10000132>) | undefined, genshin_character_constellations?: {[key: string]: number} | undefined, genshin_character_constellations_max?: {[key: string]: number} | undefined, 'genshin_weapon[]'?: (Array<11101 | 11201 | 11301 | 11302 | 11303 | 11304 | 11305 | 11306 | 11401 | 11402 | 11403 | 11404 | 11405 | 11406 | 11407 | 11408 | 11409 | 11410 | 11412 | 11413 | 11414 | 11415 | 11416 | 11417 | 11418 | 11422 | 11424 | 11425 | 11426 | 11427 | 11428 | 11430 | 11431 | 11432 | 11433 | 11434 | 11501 | 11502 | 11503 | 11504 | 11505 | 11509 | 11510 | 11511 | 11512 | 11513 | 11514 | 11515 | 11516 | 11517 | 11518 | 11519 | 12101 | 12201 | 12301 | 12302 | 12303 | 12305 | 12306 | 12401 | 12402 | 12403 | 12404 | 12405 | 12406 | 12407 | 12408 | 12409 | 12410 | 12411 | 12412 | 12414 | 12415 | 12416 | 12417 | 12418 | 12424 | 12425 | 12426 | 12427 | 12430 | 12431 | 12432 | 12433 | 12501 | 12502 | 12503 | 12504 | 12510 | 12511 | 12512 | 12513 | 12514 | 12515 | 13101 | 13201 | 13301 | 13302 | 13303 | 13401 | 13402 | 13403 | 13404 | 13405 | 13406 | 13407 | 13408 | 13409 | 13414 | 13415 | 13416 | 13417 | 13419 | 13424 | 13425 | 13426 | 13427 | 13430 | 13431 | 13432 | 13433 | 13434 | 13501 | 13502 | 13504 | 13505 | 13507 | 13509 | 13511 | 13512 | 13513 | 13514 | 13515 | 13516 | 14101 | 14201 | 14301 | 14302 | 14303 | 14304 | 14305 | 14401 | 14402 | 14403 | 14404 | 14405 | 14406 | 14407 | 14408 | 14409 | 14410 | 14412 | 14413 | 14414 | 14415 | 14416 | 14417 | 14424 | 14425 | 14426 | 14427 | 14430 | 14431 | 14432 | 14433 | 14434 | 14501 | 14502 | 14504 | 14505 | 14506 | 14509 | 14511 | 14512 | 14513 | 14514 | 14515 | 14516 | 14517 | 14518 | 14519 | 14520 | 14521 | 14522 | 14523 | 15101 | 15201 | 15301 | 15302 | 15303 | 15304 | 15305 | 15401 | 15402 | 15403 | 15404 | 15405 | 15406 | 15407 | 15408 | 15409 | 15410 | 15411 | 15412 | 15413 | 15414 | 15415 | 15416 | 15417 | 15418 | 15419 | 15424 | 15425 | 15426 | 15427 | 15430 | 15431 | 15432 | 15433 | 15434 | 15501 | 15502 | 15503 | 15507 | 15508 | 15509 | 15511 | 15512 | 15513 | 15514 | 15515 | 15516>) | undefined, genshin_char_min?: number | undefined, genshin_char_max?: number | undefined, genshin_legendary_min?: number | undefined, genshin_legendary_max?: number | undefined, genshin_level_min?: number | undefined, genshin_level_max?: number | undefined, genshin_legendary_weapon_min?: number | undefined, genshin_legendary_weapon_max?: number | undefined, constellations_min?: number | undefined, constellations_max?: number | undefined, genshin_achievement_min?: number | undefined, genshin_achievement_max?: number | undefined, genshin_currency_min?: number | undefined, genshin_currency_max?: number | undefined, 'honkai_character[]'?: (Array<1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1008 | 1009 | 1013 | 1014 | 1015 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1217 | 1218 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1312 | 1313 | 1314 | 1315 | 1317 | 1321 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1412 | 1413 | 1414 | 1415 | 1501 | 1502 | 1504 | 1505 | 1506 | 1507 | 8001 | 8002 | 8003 | 8004 | 8005 | 8006 | 8007 | 8008 | 8009 | 8010>) | undefined, honkai_character_eidolons?: {[key: string]: number} | undefined, honkai_character_eidolons_max?: {[key: string]: number} | undefined, 'honkai_weapon[]'?: (Array<20000 | 20001 | 20002 | 20003 | 20004 | 20005 | 20006 | 20007 | 20008 | 20009 | 20010 | 20011 | 20012 | 20013 | 20014 | 20015 | 20016 | 20017 | 20018 | 20019 | 20020 | 20021 | 20022 | 20023 | 20024 | 21000 | 21001 | 21002 | 21003 | 21004 | 21005 | 21006 | 21007 | 21008 | 21009 | 21010 | 21011 | 21012 | 21013 | 21014 | 21015 | 21016 | 21017 | 21018 | 21019 | 21020 | 21021 | 21022 | 21023 | 21024 | 21025 | 21026 | 21027 | 21028 | 21029 | 21030 | 21031 | 21032 | 21033 | 21034 | 21035 | 21036 | 21037 | 21038 | 21039 | 21040 | 21041 | 21042 | 21043 | 21044 | 21045 | 21046 | 21047 | 21048 | 21050 | 21051 | 21052 | 21053 | 21054 | 21055 | 21056 | 21057 | 21058 | 21060 | 21061 | 21062 | 21064 | 21065 | 22000 | 22001 | 22002 | 22003 | 22004 | 22005 | 22006 | 22007 | 23000 | 23001 | 23002 | 23003 | 23004 | 23005 | 23006 | 23007 | 23008 | 23009 | 23010 | 23011 | 23012 | 23013 | 23014 | 23015 | 23016 | 23017 | 23018 | 23019 | 23020 | 23021 | 23022 | 23023 | 23024 | 23025 | 23026 | 23027 | 23028 | 23029 | 23030 | 23031 | 23032 | 23033 | 23034 | 23035 | 23036 | 23037 | 23038 | 23039 | 23040 | 23041 | 23042 | 23043 | 23044 | 23045 | 23046 | 23047 | 23048 | 23049 | 23050 | 23051 | 23052 | 23053 | 23054 | 23056 | 23057 | 23058 | 23059 | 24000 | 24001 | 24002 | 24003 | 24004 | 24005 | 24006>) | undefined, honkai_char_min?: number | undefined, honkai_char_max?: number | undefined, honkai_legendary_min?: number | undefined, honkai_legendary_max?: number | undefined, honkai_level_min?: number | undefined, honkai_level_max?: number | undefined, honkai_legendary_weapon_min?: number | undefined, honkai_legendary_weapon_max?: number | undefined, eidolons_min?: number | undefined, eidolons_max?: number | undefined, honkai_achievement_min?: number | undefined, honkai_achievement_max?: number | undefined, honkai_currency_min?: number | undefined, honkai_currency_max?: number | undefined, 'zenless_character[]'?: (Array<1011 | 1021 | 1031 | 1041 | 1051 | 1061 | 1071 | 1081 | 1091 | 1101 | 1111 | 1121 | 1131 | 1141 | 1151 | 1161 | 1171 | 1181 | 1191 | 1201 | 1211 | 1221 | 1241 | 1251 | 1261 | 1271 | 1281 | 1291 | 1301 | 1311 | 1321 | 1331 | 1341 | 1351 | 1361 | 1371 | 1381 | 1391 | 1401 | 1411 | 1421 | 1431 | 1441 | 1451 | 1461 | 1471 | 1481 | 1491 | 1501 | 1511 | 1521 | 1531 | 1541>) | undefined, zenless_character_cinemas?: {[key: string]: number} | undefined, zenless_character_cinemas_max?: {[key: string]: number} | undefined, 'zenless_weapon[]'?: (Array<12001 | 12002 | 12003 | 12004 | 12005 | 12006 | 12007 | 12008 | 12009 | 12010 | 12011 | 12012 | 12013 | 12014 | 12015 | 13001 | 13002 | 13003 | 13004 | 13005 | 13006 | 13007 | 13008 | 13009 | 13010 | 13011 | 13012 | 13013 | 13014 | 13015 | 13016 | 13019 | 13020 | 13101 | 13103 | 13106 | 13108 | 13111 | 13112 | 13113 | 13115 | 13127 | 13128 | 13135 | 13142 | 13144 | 14001 | 14002 | 14003 | 14102 | 14104 | 14105 | 14107 | 14109 | 14110 | 14114 | 14116 | 14117 | 14118 | 14119 | 14120 | 14121 | 14122 | 14124 | 14125 | 14126 | 14129 | 14130 | 14131 | 14132 | 14133 | 14134 | 14136 | 14137 | 14138 | 14139 | 14140 | 14141 | 14143 | 14145 | 14146 | 14147 | 14148 | 14149 | 14150 | 14151 | 14152 | 14153 | 14154>) | undefined, zenless_legendary_min?: number | undefined, zenless_legendary_max?: number | undefined, cinemas_min?: number | undefined, cinemas_max?: number | undefined, zenless_legendary_weapon_min?: number | undefined, zenless_legendary_weapon_max?: number | undefined, zenless_char_min?: number | undefined, zenless_char_max?: number | undefined, zenless_level_min?: number | undefined, zenless_level_max?: number | undefined, zenless_achievement_min?: number | undefined, zenless_achievement_max?: number | undefined, zenless_currency_min?: number | undefined, zenless_currency_max?: number | undefined, daybreak?: number | undefined, 'mihoyo_game[]'?: (Array<'genshin-impact' | 'honkai-star-rail' | 'zenless-zone-zero'>) | undefined}; export type GetApiMihoyoOptions = {baseUrl?: string | undefined, HTTPBearer?: string | undefined, fetch?: typeof fetch | undefined}; export const respSystemInfo = z.object({rate_limit: z.object({limit: z.number().int(), remaining: z.number().int(), reset: z.number().int(), bucket: z.string().optional()}), visitor_id: z.number().int(), time: z.number().int(), log_id: z.number().int()}); export const getApiMihoyoResponse = z.object({items: z.array(z.object({item_id: z.number().int(), item_state: z.string(), category_id: z.number().int(), published_date: z.number().int(), title: z.string(), description: z.string(), price: z.number().int(), update_stat_date: z.number().int(), refreshed_date: z.number().int(), edit_date: z.number().int(), pending_deletion_date: z.number().int(), view_count: z.number().int(), is_sticky: z.number().int(), item_origin: z.string(), extended_guarantee: z.number().int(), nsb: z.number().int(), allow_ask_discount: z.number().int(), title_en: z.string(), description_en: z.string(), email_type: z.string(), email_provider: z.string().nullable(), item_domain: z.string(), resale_item_origin: z.string(), auto_bump_period: z.number().int(), guarantee_duration: z.number().int(), rub_price: z.number().int(), discount: z.object({ask_date: z.number().int(), ask_item_id: z.number().int(), ask_user_id: z.number().int(), auto_buy: z.boolean(), auto_buy_max_price: z.number().int(), balance_id: z.string(), discount_accepted: z.boolean(), discount_price: z.number().int(), message: z.string()}).nullable(), mihoyo_item_id: z.number().int(), mihoyo_id: z.number().int(), mihoyo_email: z.number().int(), mihoyo_has_linked_accounts: z.number().int(), mihoyo_region: z.string(), mihoyo_last_activity: z.number().int(), mihoyo_genshin_level: z.number().int(), mihoyo_genshin_character_count: z.number().int(), mihoyo_genshin_achievement_count: z.number().int(), mihoyo_genshin_abyss_process: z.string(), mihoyo_genshin_legendary_characters_count: z.number().int(), mihoyo_genshin_constellations_count: z.number().int(), mihoyo_genshin_legendary_weapons_count: z.number().int(), mihoyo_genshin_activity_days: z.number().int(), mihoyo_genshin_currency: z.number().int(), mihoyo_honkai_level: z.number().int(), mihoyo_honkai_character_count: z.number().int(), mihoyo_honkai_achievement_count: z.number().int(), mihoyo_honkai_abyss_process: z.string(), mihoyo_honkai_legendary_characters_count: z.number().int(), mihoyo_honkai_eidolons_count: z.number().int(), mihoyo_honkai_legendary_weapons_count: z.number().int(), mihoyo_honkai_activity_days: z.number().int(), mihoyo_honkai_currency: z.number().int(), mihoyo_zenless_level: z.number().int(), mihoyo_zenless_character_count: z.number().int(), mihoyo_zenless_achievement_count: z.number().int(), mihoyo_zenless_abyss_process: z.string(), mihoyo_zenless_legendary_characters_count: z.number().int(), mihoyo_zenless_cinemas_count: z.number().int(), mihoyo_zenless_legendary_weapons_count: z.number().int(), mihoyo_zenless_activity_days: z.number().int(), mihoyo_zenless_currency: z.number().int(), feedback_data: z.string(), max_discount_percent: z.number().int(), priceWithSellerFee: z.number(), category: z.object({category_id: z.number().int(), category_title: z.string(), category_name: z.string(), category_url: z.string()}), guarantee: z.object({duration: z.number().int(), class: z.string(), durationPhrase: z.string(), endDate: z.number().int().nullable(), active: z.number().int().nullable(), cancelled: z.number().int().nullable(), remainingTime: z.number().int().nullable()}), canViewLoginData: z.boolean(), canViewTempEmail: z.boolean(), canUpdateItemStats: z.boolean(), canReportItem: z.boolean(), canViewItemViews: z.boolean(), canManagePublicTag: z.boolean(), canViewEmailLoginData: z.boolean(), copyFormatData: z.object({title_link: z.string()}), showGetEmailCodeButton: z.boolean(), canOpenItem: z.boolean(), canCloseItem: z.boolean(), canEditItem: z.boolean(), canDeleteItem: z.boolean(), canStickItem: z.boolean(), canUnstickItem: z.boolean(), canBumpItem: z.boolean(), canNotBumpItemReason: z.string(), canAutoBump: z.boolean(), buyer: z.unknown(), isPersonalAccount: z.boolean(), canBuyItem: z.boolean(), price_currency: z.string(), priceWithSellerFeeLabel: z.string(), canValidateAccount: z.boolean(), canChangeOwner: z.boolean(), canResellItem: z.boolean(), mihoyoRegionPhrase: z.string(), mihoyoLinkedAccounts: z.object({links: z.array(z.string()), legacy: z.boolean()}), mihoyoLinkedAccountsString: z.string(), honkaiCharacters: z.array(z.object({id: z.number().int(), level: z.number().int(), name: z.string(), element: z.string(), icon: z.string(), rarity: z.number().int(), rank: z.number().int(), image: z.string(), equip: z.object({id: z.number().int(), level: z.number().int(), rank: z.number().int(), name: z.string(), desc: z.string(), icon: z.string(), rarity: z.number().int()}), relics: z.array(z.object({id: z.number().int(), level: z.number().int(), pos: z.number().int(), name: z.string(), desc: z.string(), icon: z.string(), rarity: z.number().int(), main_property: z.object({property_type: z.number().int(), value: z.string(), times: z.number().int(), is_preview: z.boolean()}), properties: z.array(z.array(z.object({property_type: z.number().int(), value: z.string(), times: z.number().int(), is_preview: z.boolean()})))})), ornaments: z.array(z.object({id: z.number().int(), level: z.number().int(), pos: z.number().int(), name: z.string(), desc: z.string(), icon: z.string(), rarity: z.number().int(), main_property: z.object({property_type: z.number().int(), value: z.string(), times: z.number().int(), is_preview: z.boolean()}), properties: z.array(z.object({property_type: z.number().int(), value: z.string(), times: z.number().int(), is_preview: z.boolean()}))})), base_type: z.number().int(), figure_path: z.string(), element_id: z.number().int(), servant_detail: z.object({servant_id: z.string(), servant_name: z.string(), servant_icon: z.string(), servant_properties: z.array(z.object({property_type: z.number().int(), base: z.string(), add: z.string(), final: z.string()})), servant_skills: z.array(z.object({point_id: z.string(), point_type: z.number().int(), item_url: z.string(), level: z.number().int(), is_activated: z.boolean(), is_rank_work: z.boolean(), pre_point: z.string(), anchor: z.string(), remake: z.string(), skill_stages: z.array(z.object({desc: z.string(), name: z.string(), level: z.number().int(), remake: z.string(), item_url: z.string(), is_activated: z.boolean(), is_rank_work: z.boolean(), exclusive_skill: z.object({name: z.string(), desc: z.string()}), skill_id: z.string(), special_point_type: z.string(), desc_icon_map: z.array(z.unknown()), linked_avatar: z.object({avatar_id: z.string(), name: z.string()}), linked_skill_id: z.string()})), special_point_type: z.string(), link_to_avatar_skills: z.array(z.unknown())})), is_health_secret: z.boolean()}), avatar_ld_type: z.string(), cur_enhanced_id: z.number().int(), special_skills: z.array(z.object({point_id: z.string(), point_type: z.number().int(), item_url: z.string(), level: z.number().int(), is_activated: z.boolean(), is_rank_work: z.boolean(), pre_point: z.string(), anchor: z.string(), remake: z.string(), skill_stages: z.array(z.object({desc: z.string(), name: z.string(), level: z.number().int(), remake: z.string(), item_url: z.string(), is_activated: z.boolean(), is_rank_work: z.boolean(), exclusive_skill: z.object({name: z.string(), desc: z.string()}), skill_id: z.string(), special_point_type: z.string(), linked_avatar_list: z.array(z.unknown()), desc_icon_map: z.array(z.unknown()), elation_skill_priority: z.string()})), special_point_type: z.string()})), elementImage: z.string()})), genshinCharacters: z.array(z.object({id: z.number().int(), icon: z.string(), name: z.string(), element: z.string(), fetter: z.number().int(), level: z.number().int(), rarity: z.number().int(), actived_constellation_num: z.number().int(), image: z.string(), is_chosen: z.boolean(), side_icon: z.string(), weapon_type: z.number().int(), weapon: z.object({id: z.number().int(), name: z.string(), icon: z.string(), type: z.number().int(), rarity: z.number().int(), level: z.number().int(), promote_level: z.number().int(), type_name: z.string(), desc: z.string(), affix_level: z.number().int(), main_property: z.object({property_type: z.number().int(), base: z.string(), add: z.string(), final: z.string()}), sub_property: z.object({property_type: z.number().int(), base: z.string(), add: z.string(), final: z.string()})}), reliquaries: z.array(z.object({id: z.number().int(), name: z.string(), icon: z.string(), pos: z.number().int(), rarity: z.number().int(), level: z.number().int(), pos_name: z.string(), main_property: z.object({property_type: z.number().int(), value: z.string(), times: z.number().int()}), sub_property_list: z.array(z.object({property_type: z.number().int(), value: z.string(), times: z.number().int()}))})), background: z.string()})), zenlessCharacters: z.array(z.object({id: z.number().int(), level: z.number().int(), name_mi18n: z.string(), full_name_mi18n: z.string(), element_type: z.number().int(), camp_name_mi18n: z.string(), avatar_profession: z.number().int(), rarity: z.number().int(), weapon: z.object({id: z.number().int(), level: z.number().int(), name: z.string(), star: z.number().int(), icon: z.string(), rarity: z.number().int(), properties: z.array(z.object({property_name: z.string(), property_id: z.number().int(), base: z.string(), level: z.number().int(), valid: z.boolean(), system_id: z.number().int(), add: z.number().int()})), main_properties: z.array(z.object({property_name: z.string(), property_id: z.number().int(), base: z.string(), level: z.number().int(), valid: z.boolean(), system_id: z.number().int(), add: z.number().int()})), talent_title: z.string(), talent_content: z.string(), profession: z.number().int(), starIcon: z.string(), rarityIcon: z.string()}), rank: z.number().int(), role_vertical_painting_url: z.string(), equip_plan_info: z.unknown(), us_full_name: z.string(), vertical_painting_color: z.string(), sub_element_type: z.number().int(), skin_list: z.array(z.object({skin_id: z.number().int(), skin_name: z.string(), skin_vertical_painting_url: z.string(), skin_square_url: z.string(), skin_hollow_icon_path: z.string(), skin_vertical_painting_color: z.string(), unlocked: z.boolean(), rarity: z.string(), is_original: z.boolean()})), role_square_url: z.string(), awaken_state: z.string(), skill_awaken: z.object({has_awaken_system: z.boolean(), awaken_level: z.number().int(), awaken_max_level: z.number().int(), skill_awaken_items: z.array(z.object({awaken_level: z.number().int(), level_show_name: z.string(), awaken_skill_items: z.array(z.object({skill_type: z.number().int(), awaken_simple_info: z.string(), skill_items: z.array(z.object({title: z.string(), text: z.string()}))}))}))}), name: z.string(), rarityIcon: z.string(), elementIcon: z.string(), professionIcon: z.string()})), canViewAccountLink: z.boolean(), accountLinks: z.array(z.object({link: z.string(), text: z.string(), iconClass: z.string()})), accountLink: z.string(), imagePreviewLinks: z.object({download: z.object({genshin: z.string()}), direct: z.object({genshin: z.string()})}), emailLoginUrl: z.string().optional(), canChangePassword: z.boolean(), canChangeEmailPassword: z.boolean(), uniqueKeyExists: z.boolean(), itemOriginPhrase: z.string(), tags: z.array(z.record(z.string(), z.object({tag_id: z.number().int(), title: z.string(), isDefault: z.boolean(), forOwnedAccountsOnly: z.boolean(), bc: z.string()}))).nullable(), public_tag: z.object({background_color: z.string(), tag_id: z.number().int(), title: z.string()}).nullable(), note_text: z.string().nullable(), descriptionHtml: z.string(), descriptionEnHtml: z.string(), descriptionPlain: z.string(), descriptionEnPlain: z.string(), seller: z.object({user_id: z.number().int(), sold_items_count: z.number().int(), active_items_count: z.number().int(), restore_data: z.string(), username: z.string(), avatar_date: z.number().int(), is_banned: z.number().int(), display_style_group_id: z.number().int(), restore_percents: z.number().int().nullable()}), sold_items_category_count: z.number().int(), restore_items_category_count: z.number().int()})), totalItems: z.number().int(), totalItemsPrice: z.unknown(), hasNextPage: z.boolean(), nextCursor: z.string(), perPage: z.number().int(), page: z.number().int(), wasCached: z.boolean(), cacheTTL: z.number().int(), lastModified: z.number().int(), serverTime: z.number().int(), searchUrl: z.string(), search: z.string(), stickyItems: z.array(z.unknown()), publishedPeriodLabelPhrase: z.string(), filterDatesDefault: z.boolean(), published_startDate: z.string(), published_endDate: z.string(), filter_by_published_date: z.boolean(), published_period_label: z.string(), system_info: respSystemInfo}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * miHoYo * * GET /mihoyo */ export const getApiMihoyo = async (args: GetApiMihoyoArgs, options?: GetApiMihoyoOptions) => { const {baseUrl = "https://api.lzt.market", fetch: fetchFn = fetch, HTTPBearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.after != null) query.append("after", String(args.after)) if (args.pmin != null) query.append("pmin", String(args.pmin)) if (args.pmax != null) query.append("pmax", String(args.pmax)) if (args.title != null) query.append("title", String(args.title)) if (args.order_by != null) query.append("order_by", String(args.order_by)) for (const item of args['tag_id[]'] ?? []) query.append("tag_id[]", String(item)) for (const item of args['not_tag_id[]'] ?? []) query.append("not_tag_id[]", String(item)) for (const item of args['public_tag_id[]'] ?? []) query.append("public_tag_id[]", String(item)) for (const item of args['not_public_tag_id[]'] ?? []) query.append("not_public_tag_id[]", String(item)) if (args['origin[]'] != null) query.append("origin[]", String(args['origin[]'])) for (const item of args['not_origin[]'] ?? []) query.append("not_origin[]", String(item)) if (args.user_id != null) query.append("user_id", String(args.user_id)) if (args.nsb != null) query.append("nsb", String(args.nsb)) if (args.sb != null) query.append("sb", String(args.sb)) if (args.nsb_by_me != null) query.append("nsb_by_me", String(args.nsb_by_me)) if (args.sb_by_me != null) query.append("sb_by_me", String(args.sb_by_me)) if (args.currency != null) query.append("currency", String(args.currency)) if (args.email_login_data != null) query.append("email_login_data", String(args.email_login_data)) for (const item of args['email_provider[]'] ?? []) query.append("email_provider[]", String(item)) if (args['not_email_provider[]'] != null) query.append("not_email_provider[]", String(args['not_email_provider[]'])) for (const item of args['email_type[]'] ?? []) query.append("email_type[]", String(item)) if (args.parse_same_item_ids != null) query.append("parse_same_item_ids", String(args.parse_same_item_ids)) if (args.item_domain != null) query.append("item_domain", String(args.item_domain)) if (args.email != null) query.append("email", String(args.email)) if (args.ea != null) query.append("ea", String(args.ea)) for (const item of args.region ?? []) query.append("region", String(item)) for (const item of args.not_region ?? []) query.append("not_region", String(item)) for (const item of args['genshin_character[]'] ?? []) query.append("genshin_character[]", String(item)) if (args.genshin_character_constellations != null) query.append("genshin_character_constellations", JSON.stringify(args.genshin_character_constellations)) if (args.genshin_character_constellations_max != null) query.append("genshin_character_constellations_max", JSON.stringify(args.genshin_character_constellations_max)) for (const item of args['genshin_weapon[]'] ?? []) query.append("genshin_weapon[]", String(item)) if (args.genshin_char_min != null) query.append("genshin_char_min", String(args.genshin_char_min)) if (args.genshin_char_max != null) query.append("genshin_char_max", String(args.genshin_char_max)) if (args.genshin_legendary_min != null) query.append("genshin_legendary_min", String(args.genshin_legendary_min)) if (args.genshin_legendary_max != null) query.append("genshin_legendary_max", String(args.genshin_legendary_max)) if (args.genshin_level_min != null) query.append("genshin_level_min", String(args.genshin_level_min)) if (args.genshin_level_max != null) query.append("genshin_level_max", String(args.genshin_level_max)) if (args.genshin_legendary_weapon_min != null) query.append("genshin_legendary_weapon_min", String(args.genshin_legendary_weapon_min)) if (args.genshin_legendary_weapon_max != null) query.append("genshin_legendary_weapon_max", String(args.genshin_legendary_weapon_max)) if (args.constellations_min != null) query.append("constellations_min", String(args.constellations_min)) if (args.constellations_max != null) query.append("constellations_max", String(args.constellations_max)) if (args.genshin_achievement_min != null) query.append("genshin_achievement_min", String(args.genshin_achievement_min)) if (args.genshin_achievement_max != null) query.append("genshin_achievement_max", String(args.genshin_achievement_max)) if (args.genshin_currency_min != null) query.append("genshin_currency_min", String(args.genshin_currency_min)) if (args.genshin_currency_max != null) query.append("genshin_currency_max", String(args.genshin_currency_max)) for (const item of args['honkai_character[]'] ?? []) query.append("honkai_character[]", String(item)) if (args.honkai_character_eidolons != null) query.append("honkai_character_eidolons", JSON.stringify(args.honkai_character_eidolons)) if (args.honkai_character_eidolons_max != null) query.append("honkai_character_eidolons_max", JSON.stringify(args.honkai_character_eidolons_max)) for (const item of args['honkai_weapon[]'] ?? []) query.append("honkai_weapon[]", String(item)) if (args.honkai_char_min != null) query.append("honkai_char_min", String(args.honkai_char_min)) if (args.honkai_char_max != null) query.append("honkai_char_max", String(args.honkai_char_max)) if (args.honkai_legendary_min != null) query.append("honkai_legendary_min", String(args.honkai_legendary_min)) if (args.honkai_legendary_max != null) query.append("honkai_legendary_max", String(args.honkai_legendary_max)) if (args.honkai_level_min != null) query.append("honkai_level_min", String(args.honkai_level_min)) if (args.honkai_level_max != null) query.append("honkai_level_max", String(args.honkai_level_max)) if (args.honkai_legendary_weapon_min != null) query.append("honkai_legendary_weapon_min", String(args.honkai_legendary_weapon_min)) if (args.honkai_legendary_weapon_max != null) query.append("honkai_legendary_weapon_max", String(args.honkai_legendary_weapon_max)) if (args.eidolons_min != null) query.append("eidolons_min", String(args.eidolons_min)) if (args.eidolons_max != null) query.append("eidolons_max", String(args.eidolons_max)) if (args.honkai_achievement_min != null) query.append("honkai_achievement_min", String(args.honkai_achievement_min)) if (args.honkai_achievement_max != null) query.append("honkai_achievement_max", String(args.honkai_achievement_max)) if (args.honkai_currency_min != null) query.append("honkai_currency_min", String(args.honkai_currency_min)) if (args.honkai_currency_max != null) query.append("honkai_currency_max", String(args.honkai_currency_max)) for (const item of args['zenless_character[]'] ?? []) query.append("zenless_character[]", String(item)) if (args.zenless_character_cinemas != null) query.append("zenless_character_cinemas", JSON.stringify(args.zenless_character_cinemas)) if (args.zenless_character_cinemas_max != null) query.append("zenless_character_cinemas_max", JSON.stringify(args.zenless_character_cinemas_max)) for (const item of args['zenless_weapon[]'] ?? []) query.append("zenless_weapon[]", String(item)) if (args.zenless_legendary_min != null) query.append("zenless_legendary_min", String(args.zenless_legendary_min)) if (args.zenless_legendary_max != null) query.append("zenless_legendary_max", String(args.zenless_legendary_max)) if (args.cinemas_min != null) query.append("cinemas_min", String(args.cinemas_min)) if (args.cinemas_max != null) query.append("cinemas_max", String(args.cinemas_max)) if (args.zenless_legendary_weapon_min != null) query.append("zenless_legendary_weapon_min", String(args.zenless_legendary_weapon_min)) if (args.zenless_legendary_weapon_max != null) query.append("zenless_legendary_weapon_max", String(args.zenless_legendary_weapon_max)) if (args.zenless_char_min != null) query.append("zenless_char_min", String(args.zenless_char_min)) if (args.zenless_char_max != null) query.append("zenless_char_max", String(args.zenless_char_max)) if (args.zenless_level_min != null) query.append("zenless_level_min", String(args.zenless_level_min)) if (args.zenless_level_max != null) query.append("zenless_level_max", String(args.zenless_level_max)) if (args.zenless_achievement_min != null) query.append("zenless_achievement_min", String(args.zenless_achievement_min)) if (args.zenless_achievement_max != null) query.append("zenless_achievement_max", String(args.zenless_achievement_max)) if (args.zenless_currency_min != null) query.append("zenless_currency_min", String(args.zenless_currency_min)) if (args.zenless_currency_max != null) query.append("zenless_currency_max", String(args.zenless_currency_max)) if (args.daybreak != null) query.append("daybreak", String(args.daybreak)) for (const item of args['mihoyo_game[]'] ?? []) query.append("mihoyo_game[]", String(item)) if (HTTPBearer !== undefined) headers.set('authorization', `Bearer ${HTTPBearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/mihoyo${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiMihoyoResponse, await res.json()) };