import { AxiosResponse, AxiosRequestConfig } from 'axios';
import { z } from 'zod';
import * as express from 'express';
import express__default, { Router, RequestHandler } from 'express';
import { ChalkInstance } from 'chalk';

/**
 * @description 视频信息参数类型
 */
type BilibiliVideoParams = BilibiliMethodOptionsMap['VideoInfoParams'];
/**
 * @description 视频下载参数类型
 */
type BilibiliVideoDownloadParams = BilibiliMethodOptionsMap['VideoStreamParams'];
/**
 * @description 评论参数类型
 */
type BilibiliCommentParams = BilibiliMethodOptionsMap['CommentParams'];
/**
 * @description 用户信息参数类型
 */
type BilibiliUserParams = BilibiliMethodOptionsMap['UserParams'];
/**
 * @description 表情包参数类型
 */
type BilibiliEmojiParams = BilibiliMethodOptionsMap['EmojiParams'];
/**
 * @description 番剧信息参数类型
 */
type BilibiliBangumiInfoParams = BilibiliMethodOptionsMap['BangumiInfoParams'];
/**
 * @description 番剧下载参数类型
 */
type BilibiliBangumiStreamParams = BilibiliMethodOptionsMap['BangumiStreamParams'];
/**
 * @description 动态信息参数类型
 */
type BilibiliDynamicParams = BilibiliMethodOptionsMap['DynamicParams'];
/**
 * @description 直播间参数类型
 */
type BilibiliLiveParams = BilibiliMethodOptionsMap['LiveRoomParams'];
/**
 * @description 登录参数类型
 */
type BilibiliLoginParams = BilibiliMethodOptionsMap['LoginBaseInfoParams'];
/**
 * @description 二维码获取参数类型
 */
type BilibiliQrcodeParams = BilibiliMethodOptionsMap['GetQrcodeParams'];
/**
 * @description 二维码状态参数类型
 */
type BilibiliQrcodeStatusParams = BilibiliMethodOptionsMap['QrcodeParams'];
/**
 * @description AV号转BV号参数类型
 */
type BilibiliAv2BvParams = BilibiliMethodOptionsMap['Av2BvParams'];
/**
 * @description BV号转AV号参数类型
 */
type BilibiliBv2AvParams = BilibiliMethodOptionsMap['Bv2AvParams'];
declare const BilibiliVideoParamsSchema: z.ZodType<BilibiliVideoParams>;
declare const BilibiliVideoDownloadParamsSchema: z.ZodType<BilibiliVideoDownloadParams>;
declare const BilibiliCommentParamsSchema: z.ZodType<BilibiliCommentParams>;
declare const BilibiliUserParamsSchema: z.ZodType<BilibiliUserParams>;
declare const BilibiliEmojiParamsSchema: z.ZodType<BilibiliEmojiParams>;
declare const BilibiliBangumiInfoParamsSchema: z.ZodType<BilibiliBangumiInfoParams>;
declare const BilibiliBangumiStreamParamsSchema: z.ZodType<BilibiliBangumiStreamParams>;
declare const BilibiliDynamicParamsSchema: z.ZodType<BilibiliDynamicParams>;
declare const BilibiliLiveParamsSchema: z.ZodType<BilibiliLiveParams>;
declare const BilibiliLoginParamsSchema: z.ZodType<BilibiliLoginParams>;
declare const BilibiliQrcodeParamsSchema: z.ZodType<BilibiliQrcodeParams>;
declare const BilibiliQrcodeStatusParamsSchema: z.ZodType<BilibiliQrcodeStatusParams>;
declare const BilibiliAv2BvParamsSchema: z.ZodType<BilibiliAv2BvParams>;
declare const BilibiliBv2AvParamsSchema: z.ZodType<BilibiliBv2AvParams>;
declare const BilibiliValidationSchemas: {
    readonly 单个视频作品数据: z.ZodType<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        bvid: string;
    }, z.ZodTypeDef, {
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        bvid: string;
    }>;
    readonly 单个视频下载信息数据: z.ZodType<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        avid: number;
        cid: number;
    }, z.ZodTypeDef, {
        methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        avid: number;
        cid: number;
    }>;
    readonly 评论数据: z.ZodType<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        type: number;
        oid: string;
        number?: number;
        mode?: 0 | 1 | 2 | 3;
        pagination_str?: string;
        plat?: number;
        seek_rpid?: string;
        web_location?: string;
    }, z.ZodTypeDef, {
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        type: number;
        oid: string;
        number?: number;
        mode?: 0 | 1 | 2 | 3;
        pagination_str?: string;
        plat?: number;
        seek_rpid?: string;
        web_location?: string;
    }>;
    readonly 用户主页数据: z.ZodType<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, z.ZodTypeDef, {
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }>;
    readonly 用户主页动态列表数据: z.ZodType<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, z.ZodTypeDef, {
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }>;
    readonly Emoji数据: z.ZodType<{
        methodType: "Emoji\u6570\u636E";
    }, z.ZodTypeDef, {
        methodType: "Emoji\u6570\u636E";
    }>;
    readonly 番剧基本信息数据: z.ZodType<{
        methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
        season_id?: string;
        ep_id?: string;
    }, z.ZodTypeDef, {
        methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
        season_id?: string;
        ep_id?: string;
    }>;
    readonly 番剧下载信息数据: z.ZodType<{
        methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        cid: number;
        ep_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        cid: number;
        ep_id: string;
    }>;
    readonly 动态详情数据: z.ZodType<{
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }>;
    readonly 动态卡片数据: z.ZodType<{
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }>;
    readonly 直播间信息: z.ZodType<{
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }>;
    readonly 直播间初始化信息: z.ZodType<{
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }>;
    readonly 登录基本信息: z.ZodType<{
        methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
    }, z.ZodTypeDef, {
        methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
    }>;
    readonly 申请二维码: z.ZodType<{
        methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
    }, z.ZodTypeDef, {
        methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
    }>;
    readonly 二维码状态: z.ZodType<{
        methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
        qrcode_key: string;
    }, z.ZodTypeDef, {
        methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
        qrcode_key: string;
    }>;
    readonly 获取UP主总播放量: z.ZodType<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, z.ZodTypeDef, {
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }>;
    readonly AV转BV: z.ZodType<{
        methodType: "AV\u8F6CBV";
        avid: number;
    }, z.ZodTypeDef, {
        methodType: "AV\u8F6CBV";
        avid: number;
    }>;
    readonly BV转AV: z.ZodType<{
        methodType: "BV\u8F6CAV";
        bvid: string;
    }, z.ZodTypeDef, {
        methodType: "BV\u8F6CAV";
        bvid: string;
    }>;
};

type BilibiliMethodType = keyof typeof BilibiliValidationSchemas;

interface DouyinMethodOptionsMap {
    CommentReplyParams: {
        methodType: '指定评论回复数据';
        /** 视频ID */
        aweme_id: string;
        /** 评论ID */
        comment_id: string;
        /**
         * 获取的评论数量
         * 默认情况下，如果指定的数量不足，则获取实际的评论数量。
         * @defaultValue 5
         */
        number?: number;
        /**
          * 游标，作用类似于翻页，根据上一次评论数量递增
          * @defaultValue 0
          */
        cursor?: number;
    };
    UserParams: {
        methodType: '用户主页数据' | '用户主页视频列表数据' | '直播间信息数据';
        /** 用户ID */
        sec_uid: string;
    };
    WorkParams: {
        methodType: '视频作品数据' | '图集作品数据' | '合辑作品数据' | '聚合解析';
        /** 视频ID、图集ID、合辑ID */
        aweme_id: string;
    };
    CommentParams: {
        methodType: '评论数据';
        /** 视频ID */
        aweme_id: string;
        /**
         * 获取的评论数量
         * 默认情况下，如果指定的数量不足，则获取实际的评论数量。
         * @defaultValue 50
         */
        number?: number;
        /**
         * 游标，作用类似于翻页，根据上一次评论数量递增
         * @defaultValue 0
         */
        cursor?: number;
    };
    MusicParams: {
        methodType: '音乐数据';
        /** 音乐ID */
        music_id: string;
    };
    LiveRoomParams: {
        methodType: '直播间信息数据';
        /** 直播间ID，可从用户主页信息的room_id_str值取得 */
        room_id: string;
        /** 直播间真实房间号（可通过live.douyin.com/\{web_rid\}直接访问直播间），在用户主页信息的room_data中获取 */
        web_rid: string;
    };
    QrcodeParams: {
        methodType: '申请二维码数据';
        /** fp指纹 */
        verify_fp: string;
    };
    SearchParams: {
        methodType: '热点词数据' | '搜索数据';
        /** 搜索词 */
        query: string;
        /**
         * 搜索数量，仅数据类型为"搜索数据"时有效
         * @defaultValue 10
         */
        number?: number;
        /** 上次搜索的游标值 */
        search_id?: string;
    };
    EmojiListParams: {
        methodType: 'Emoji数据';
    };
    EmojiProParams: {
        methodType: '动态表情数据';
    };
    VideoWorkParams: {
        methodType: '视频作品数据';
        /** 视频ID */
        aweme_id: string;
    };
    ImageAlbumWorkParams: {
        methodType: '图集作品数据';
        /** 图集ID */
        aweme_id: string;
    };
    SlidesWorkParams: {
        methodType: '合辑作品数据';
        /** 合辑ID */
        aweme_id: string;
    };
}

/**
 * @description 抖音视频作品等请求参数
 */
type DouyinWorkParams = DouyinMethodOptionsMap['WorkParams'];
/**
 * @description 抖音评论数据请求参数
 */
type DouyinCommentParams = DouyinMethodOptionsMap['CommentParams'];
/**
 * @description 抖音搜索相关请求参数
 */
type DouyinSearchParams = DouyinMethodOptionsMap['SearchParams'];
/**
 * @description 抖音指定评论回复数据请求参数
 */
type DouyinCommentReplyParams = DouyinMethodOptionsMap['CommentReplyParams'];
/**
 * @description 抖音用户相关请求参数
 */
type DouyinUserParams = DouyinMethodOptionsMap['UserParams'];
/**
 * @description 抖音音乐数据请求参数
 */
type DouyinMusicParams = DouyinMethodOptionsMap['MusicParams'];
/**
 * @description 抖音直播间信息请求参数
 */
type DouyinLiveRoomParams = DouyinMethodOptionsMap['LiveRoomParams'];
/**
 * @description 抖音申请二维码请求参数
 */
type DouyinQrcodeParams = DouyinMethodOptionsMap['QrcodeParams'];
/**
 * @description 抖音Emoji数据请求参数
 */
type DouyinEmojiListParams = DouyinMethodOptionsMap['EmojiListParams'];
/**
 * @description 抖音动态表情数据请求参数
 */
type DouyinEmojiProParams = DouyinMethodOptionsMap['EmojiProParams'];
declare const DouyinWorkParamsSchema: z.ZodType<DouyinWorkParams>;
declare const DouyinCommentParamsSchema: z.ZodType<DouyinCommentParams>;
declare const DouyinSearchParamsSchema: z.ZodType<DouyinSearchParams>;
declare const DouyinCommentReplyParamsSchema: z.ZodType<DouyinCommentReplyParams>;
declare const DouyinUserParamsSchema: z.ZodType<DouyinUserParams>;
declare const DouyinMusicParamsSchema: z.ZodType<DouyinMusicParams>;
declare const DouyinQrcodeParamsSchema: z.ZodType<DouyinQrcodeParams>;
declare const DouyinEmojiListParamsSchema: z.ZodType<DouyinEmojiListParams>;
declare const DouyinEmojiProParamsSchema: z.ZodType<DouyinEmojiProParams>;
declare const DouyinValidationSchemas: {
    readonly 聚合解析: z.ZodType<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }>;
    readonly 视频作品数据: z.ZodType<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }>;
    readonly 图集作品数据: z.ZodType<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }>;
    readonly 合辑作品数据: z.ZodType<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }>;
    readonly 评论数据: z.ZodType<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        aweme_id: string;
        number?: number;
        cursor?: number;
    }, z.ZodTypeDef, {
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        aweme_id: string;
        number?: number;
        cursor?: number;
    }>;
    readonly 用户主页数据: z.ZodType<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, z.ZodTypeDef, {
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }>;
    readonly 用户主页视频列表数据: z.ZodType<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, z.ZodTypeDef, {
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }>;
    readonly 热点词数据: z.ZodType<{
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }, z.ZodTypeDef, {
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }>;
    readonly 搜索数据: z.ZodType<{
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }, z.ZodTypeDef, {
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }>;
    readonly 音乐数据: z.ZodType<{
        methodType: "\u97F3\u4E50\u6570\u636E";
        music_id: string;
    }, z.ZodTypeDef, {
        methodType: "\u97F3\u4E50\u6570\u636E";
        music_id: string;
    }>;
    readonly 直播间信息数据: z.ZodType<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, z.ZodTypeDef, {
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }>;
    readonly 申请二维码数据: z.ZodType<{
        methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801\u6570\u636E";
        verify_fp: string;
    }, z.ZodTypeDef, {
        methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801\u6570\u636E";
        verify_fp: string;
    }>;
    readonly Emoji数据: z.ZodType<{
        methodType: "Emoji\u6570\u636E";
    }, z.ZodTypeDef, {
        methodType: "Emoji\u6570\u636E";
    }>;
    readonly 动态表情数据: z.ZodType<{
        methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
    }, z.ZodTypeDef, {
        methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
    }>;
    readonly 指定评论回复数据: z.ZodType<{
        methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
        aweme_id: string;
        comment_id: string;
        number?: number;
        cursor?: number;
    }, z.ZodTypeDef, {
        methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
        aweme_id: string;
        comment_id: string;
        number?: number;
        cursor?: number;
    }>;
};
type DouyinMethodType = keyof typeof DouyinValidationSchemas;

interface KuaishouMethodOptionsMap {
    VideoInfoParams: {
        methodType: '单个视频作品数据';
        /** 作品ID */
        photoId: string;
    };
    CommentParams: {
        methodType: '评论数据';
        /** 作品ID */
        photoId: string;
    };
    EmojiListParams: {
        methodType: 'Emoji数据';
    };
}

/**
 * @description 快手单个视频作品请求参数
 */
type KuaishouVideoParams = KuaishouMethodOptionsMap['VideoInfoParams'];
/**
 * @description 快手评论数据请求参数
 */
type KuaishouCommentParams = KuaishouMethodOptionsMap['CommentParams'];
/**
 * @description 快手Emoji数据请求参数
 */
type KuaishouEmojiParams = KuaishouMethodOptionsMap['EmojiListParams'];
declare const KuaishouVideoParamsSchema: z.ZodType<KuaishouVideoParams>;
declare const KuaishouCommentParamsSchema: z.ZodType<KuaishouCommentParams>;
declare const KuaishouEmojiParamsSchema: z.ZodType<KuaishouEmojiParams>;
declare const KuaishouValidationSchemas: {
    readonly 单个视频作品数据: z.ZodType<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        photoId: string;
    }, z.ZodTypeDef, {
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        photoId: string;
    }>;
    readonly 评论数据: z.ZodType<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        photoId: string;
    }, z.ZodTypeDef, {
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        photoId: string;
    }>;
    readonly Emoji数据: z.ZodType<{
        methodType: "Emoji\u6570\u636E";
    }, z.ZodTypeDef, {
        methodType: "Emoji\u6570\u636E";
    }>;
};
type KuaishouMethodType = keyof typeof KuaishouValidationSchemas;

type NetworksConfigType = {
    /**
     * 请求地址
     */
    url: string;
    /**
     * 请求方法
     */
    method?: string;
    /**
     * 请求头
     */
    headers?: any;
    /**
     * 返回数据类型，默认json
     */
    responseType?: string;
    /**
     * 请求体
     */
    body?: object | string;
    /**
     * 超时时间，单位毫秒
     */
    timeout?: number;
    /**
     * 默认跟随重定向到: 'follow'，不跟随: manual
     */
    redirect?: RequestRedirect;
    /**
     * 拓展参数，该次请求数据什么数据类型，注意是平台接口的类型定义，不是请求参数
     */
    methodType?: string;
};
/** API标准化HTTP请求错误类型 */
type ErrorDetail = {
    /**
     * 错误描述信息
     */
    errorDescription: string;
    /**
     * 请求类型
     */
    requestType: string;
    /**
     * 请求URL地址
     */
    requestUrl: string;
};
/** 未知错误 */
declare enum amagiAPIErrorCode {
    /** 未知错误 */
    UNKNOWN = "UNKNOWN_ERROR"
}
/** 抖音平台API错误码 */
declare enum douoyinAPIErrorCode {
    /** Cookie无效或已过期 */
    COOKIE = "INVALID_COOKIE",
    /** 内容被隐藏或下架 */
    FILTER = "CONTENT_FILTERED",
    /** 当前用户未开播 */
    NOT_LIVE = "USER_NOT_LIVE",
    /** 未知错误 */
    UNKNOWN = "UNKNOWN_ERROR"
}
/** B站平台API错误码 */
declare enum bilibiliAPIErrorCode {
    /** 应用程序不存在或已被封禁 */
    APP_NOT_FOUND = "-1",
    /** Access Key 错误 */
    ACCESS_KEY_ERROR = "-2",
    /** API 校验密匙错误 */
    API_KEY_ERROR = "-3",
    /** 调用方对该Method没有权限 */
    METHOD_NOT_PERMITTED = "-4",
    /** 账号未登录 */
    NOT_LOGGED_IN = "-101",
    /** 账号被封停 */
    ACCOUNT_BANNED = "-102",
    /** 积分不足 */
    POINTS_INSUFFICIENT = "-103",
    /** 硬币不足 */
    COINS_INSUFFICIENT = "-104",
    /** 验证码错误 */
    CAPTCHA_ERROR = "-105",
    /** 账号非正式会员或在适应期 */
    MEMBERSHIP_LIMITED = "-106",
    /** 应用不存在或者被封禁 */
    APP_BANNED = "-107",
    /** 未绑定手机 */
    PHONE_NOT_BOUND = "-108",
    /** 未绑定手机 */
    PHONE_NOT_BOUND_2 = "-110",
    /** csrf 校验失败 */
    CSRF_ERROR = "-111",
    /** 系统升级中 */
    SYSTEM_UPDATING = "-112",
    /** 账号尚未实名认证 */
    NOT_REAL_NAME_VERIFIED = "-113",
    /** 请先绑定手机 */
    NEED_BIND_PHONE = "-114",
    /** 请先完成实名认证 */
    NEED_REAL_NAME_VERIFICATION = "-115",
    /** 木有改动 */
    NO_CHANGE = "-304",
    /** 撞车跳转 */
    CONFLICT_REDIRECT = "-307",
    /** 风控校验失败 (UA 或 wbi 参数不合法) */
    RISK_CONTROL_FAILED = "-352",
    /** 请求错误 */
    BAD_REQUEST = "-400",
    /** 未认证 (或非法请求) */
    UNAUTHORIZED = "-401",
    /** 访问权限不足 */
    FORBIDDEN = "-403",
    /** 啥都木有 */
    NOT_FOUND = "-404",
    /** 不支持该方法 */
    METHOD_NOT_ALLOWED = "-405",
    /** 冲突 */
    CONFLICT = "-409",
    /** 请求被拦截 (客户端 ip 被服务端风控) */
    IP_BLOCKED = "-412",
    /** 服务器错误 */
    SERVER_ERROR = "-500",
    /** 过载保护,服务暂不可用 */
    SERVICE_UNAVAILABLE = "-503",
    /** 服务调用超时 */
    GATEWAY_TIMEOUT = "-504",
    /** 超出限制 */
    RATE_LIMITED = "-509",
    /** 上传文件不存在 */
    FILE_NOT_FOUND = "-616",
    /** 上传文件太大 */
    FILE_TOO_LARGE = "-617",
    /** 登录失败次数太多 */
    LOGIN_ATTEMPTS_EXCEEDED = "-625",
    /** 用户不存在 */
    USER_NOT_FOUND = "-626",
    /** 密码太弱 */
    WEAK_PASSWORD = "-628",
    /** 用户名或密码错误 */
    INVALID_CREDENTIALS = "-629",
    /** 操作对象数量限制 */
    OBJECT_LIMIT_EXCEEDED = "-632",
    /** 被锁定 */
    ACCOUNT_LOCKED = "-643",
    /** 用户等级太低 */
    USER_LEVEL_TOO_LOW = "-650",
    /** 重复的用户 */
    DUPLICATE_USER = "-652",
    /** Token 过期 */
    TOKEN_EXPIRED = "-658",
    /** 密码时间戳过期 */
    PASSWORD_TIMESTAMP_EXPIRED = "-662",
    /** 地理区域限制 */
    GEO_RESTRICTED = "-688",
    /** 版权限制 */
    COPYRIGHT_RESTRICTED = "-689",
    /** 扣节操失败 */
    REPUTATION_DEDUCTION_FAILED = "-701",
    /** 请求过于频繁，请稍后再试 */
    TOO_MANY_REQUESTS = "-799",
    /** 服务器开小差了 */
    SERVER_TEMPORARILY_UNAVAILABLE = "-8888",
    /** 未知错误 */
    UNKNOWN = "UNKNOWN"
}
/** 快手平台API错误码 */
declare enum kuaishouAPIErrorCode {
    /** Cookie无效或已过期 */
    COOKIE = "INVALID_COOKIE",
    /** 未知错误 */
    UNKNOWN = "UNKNOWN_ERROR"
}

interface BilibiliMethodOptionsMap {
    VideoInfoParams: {
        methodType: '单个视频作品数据';
        /** 稿件BVID */
        bvid: string;
    };
    VideoStreamParams: {
        methodType: '单个视频下载信息数据';
        /** 稿件AVID */
        avid: number;
        /** 稿件cid */
        cid: number;
    };
    CommentParams: {
        methodType: '评论数据';
        /** 评论区类型代码，详见 [评论区类型代码](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/comment/readme.md#%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%B1%BB%E5%9E%8B%E4%BB%A3%E7%A0%81) */
        type: number;
        /** 稿件ID，也就是AV号去除前缀后的内容 */
        oid: string;
        /**
         * 获取的评论数量，默认20
         * @defaultValue 20
         */
        number?: number;
        /**
         * 排序方式
         * 默认为3
         * 0: 仅热度
         * 1: 按热度+按时间
         * 2: 仅时间
         * @defaultValue 3
         */
        mode?: 0 | 1 | 2 | 3;
        /**
         * 翻页信息，用于懒加载分页
         * 首次请求时不传，后续请求使用上次响应中的 data.cursor.pagination_reply.next_offset
         */
        pagination_str?: string;
        /**
         * 平台类型
         * @defaultValue 1
         */
        plat?: number;
        /**
         * 当获取第一页评论时存在
         */
        seek_rpid?: string;
        /**
         * web位置参数
         * @defaultValue 1315875
         */
        web_location?: string;
    };
    UserParams: {
        methodType: '用户主页数据' | '用户主页动态列表数据' | '获取UP主总播放量';
        /** UP主UID */
        host_mid: number;
    };
    DynamicParams: {
        methodType: '动态详情数据' | '动态卡片数据';
        /** 动态ID */
        dynamic_id: string;
    };
    BangumiInfoParams: {
        methodType: '番剧基本信息数据';
        /** 稿件ep_id，其含义为 {@link https://www.bilibili.com/anime/index | 番剧索引} 或 **我的追番** 中的番剧，对应网址中包含ss号，如：{@link https://www.bilibili.com/bangumi/play/ss33802} */
        season_id?: string;
        /** 稿件ep_id，番剧的某一集，对应网址中包含ep号，如：{@link https://www.bilibili.com/bangumi/play/ep330798} */
        ep_id?: string;
    };
    BangumiStreamParams: {
        methodType: '番剧下载信息数据';
        /** 稿件cid */
        cid: number;
        /** 稿件ep_id，番剧的某一集，对应网址中包含ep号，如：{@link https://www.bilibili.com/bangumi/play/ep330798} */
        ep_id: string;
    };
    LiveRoomParams: {
        methodType: '直播间信息' | '直播间初始化信息';
        /** 直播间ID */
        room_id: string;
    };
    QrcodeParams: {
        methodType: '二维码状态';
        /** 扫码登录秘钥 */
        qrcode_key: string;
    };
    EmojiParams: {
        methodType: 'Emoji数据';
    };
    LoginBaseInfoParams: {
        methodType: '登录基本信息';
    };
    GetQrcodeParams: {
        methodType: '申请二维码';
    };
    Bv2AvParams: {
        methodType: 'BV转AV';
        /** 视频BV号 */
        bvid: string;
    };
    Av2BvParams: {
        methodType: 'AV转BV';
        /** 视频AV号 */
        avid: number;
    };
}

type DyEmojiList = {
    emoji_list: EmojiListElement[];
    status_code: number;
    version: number;
    [property: string]: any;
};
type EmojiListElement = {
    display_name: string;
    emoji_url: Emojiurl;
    hide: number;
    origin_uri: string;
    [property: string]: any;
};
type Emojiurl = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};

type DyEmojiProList = {
    decision_trees: DecisionTrees;
    diverter_tags: DiverterTags;
    do_not_retry: boolean;
    extra: EmojiProListExtra;
    flame_achieve_dashboard: FlameAchieveDashboard;
    interactive_resource_config: InteractiveResourceConfig;
    log_pb: LogPb$8;
    report_toggles: ReportToggles;
    status_code: number;
    status_msg: string;
    [property: string]: any;
};
type DecisionTrees = {
    flame_achieve: FlameAchieve;
    interactive_resources: InteractiveResources;
    [property: string]: any;
};
type FlameAchieve = {
    default_config_name: string;
    root: FlameAchieveRoot;
    [property: string]: any;
};
type FlameAchieveRoot = {
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    sub_node: PurpleSubNode[];
    [property: string]: any;
};
type PurpleSubNode = {
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    sub_node?: FluffySubNode[];
    [property: string]: any;
};
type FluffySubNode = {
    config_name: string;
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    sub_node: TentacledSubNode[];
    [property: string]: any;
};
type TentacledSubNode = {
    config_name: string;
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    sub_node: StickySubNode[];
    [property: string]: any;
};
type StickySubNode = {
    config_name: string;
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    sub_node: IndigoSubNode[];
    [property: string]: any;
};
type IndigoSubNode = {
    config_name: string;
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    [property: string]: any;
};
type InteractiveResources = {
    default_config_name: string;
    root: InteractiveResourcesRoot;
    [property: string]: any;
};
type InteractiveResourcesRoot = {
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    sub_node: IndecentSubNode[];
    [property: string]: any;
};
type IndecentSubNode = {
    config_name: string;
    node_attribute: string;
    node_operation: string;
    node_type: string;
    node_value: string;
    [property: string]: any;
};
type DiverterTags = {
    actionbar_diff: string;
    flame_achieve: string;
    interactive_resources: string;
    interactive_resources_v2: string;
    plus_panel_diff: string;
    [property: string]: any;
};
type EmojiProListExtra = {
    fatal_item_ids: string[];
    logid: string;
    now: number;
    [property: string]: any;
};
type FlameAchieveDashboard = {
    '火花成就--小火人': 火花成就小火人;
    火花成就日常: 火花成就日常;
    '火花成就日常-群聊': 火花成就日常群聊;
    火花成就日常V2: 火花成就日常V2;
    '火花成就日常V2-群聊': 火花成就日常V2群聊;
    火花成就测试: 火花成就测试;
    '火花成就节日测试-群聊': 火花成就节日测试群聊;
    [property: string]: any;
};
type 火花成就小火人 = {
    detail: 火花成就小火人_Detail[];
    pet_elf_detail: PetelfDetail[];
    [property: string]: any;
};
type 火花成就小火人_Detail = {
    detail_subtitle_lock: string[];
    detail_subtitle_unflame: string[];
    flame_info: PurpleFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    subtitle_lock: string;
    title: string;
    [property: string]: any;
};
type PurpleFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type PetelfDetail = {
    detail_subtitle_unflame?: string[];
    flame_info?: PetelfDetailFlameInfo[];
    flame_to_achieve_url?: string;
    keys?: string[];
    subscript?: string;
    subtitle?: string;
    title?: string;
    [property: string]: any;
};
type PetelfDetailFlameInfo = {
    detail_subtitle?: string[];
    flame_achieve_url?: string;
    key?: string;
    subscript_color?: string;
    subtitle?: string;
    title?: string;
    [property: string]: any;
};
type 火花成就日常 = {
    detail: 火花成就日常_Detail[];
    [property: string]: any;
};
type 火花成就日常_Detail = {
    detail_subtitle_unflame: string[];
    flame_info: FluffyFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type FluffyFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type 火花成就日常群聊 = {
    detail: 火花成就日常群聊_Detail[];
    [property: string]: any;
};
type 火花成就日常群聊_Detail = {
    detail_subtitle_unflame: string[];
    flame_info: TentacledFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type TentacledFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type 火花成就日常V2 = {
    detail: 火花成就日常V2Detail[];
    [property: string]: any;
};
type 火花成就日常V2Detail = {
    detail_subtitle_lock: string[];
    detail_subtitle_unflame: string[];
    flame_info: StickyFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    subtitle_lock: string;
    title: string;
    [property: string]: any;
};
type StickyFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type 火花成就日常V2群聊 = {
    detail: 火花成就日常V2群聊_Detail[];
    [property: string]: any;
};
type 火花成就日常V2群聊_Detail = {
    detail_subtitle_lock: string[];
    detail_subtitle_unflame: string[];
    flame_info: IndigoFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    subtitle_lock: string;
    title: string;
    [property: string]: any;
};
type IndigoFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type 火花成就测试 = {
    detail: 火花成就测试_Detail[];
    [property: string]: any;
};
type 火花成就测试_Detail = {
    detail_subtitle_unflame: string[];
    flame_info: IndecentFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type IndecentFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type 火花成就节日测试群聊 = {
    detail: 火花成就节日测试群聊_Detail[];
    [property: string]: any;
};
type 火花成就节日测试群聊_Detail = {
    detail_subtitle_unflame: string[];
    flame_info: HilariousFlameInfo[];
    flame_to_achieve_url: string;
    keys: string[];
    subscript: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type HilariousFlameInfo = {
    detail_subtitle: string[];
    flame_achieve_url: string;
    key: string;
    subscript_color: string;
    subtitle: string;
    title: string;
    [property: string]: any;
};
type InteractiveResourceConfig = {
    '100-2025春节互动表情\t': The1002025春节互动表情;
    '2025 春节-Android': The2025春节Android;
    '2025 春节-Android更新': The2025春节Android更新;
    '互动表情升级 一期': 互动表情升级一期;
    [property: string]: any;
};
type The1002025春节互动表情 = {
    animate_icon: {
        [key: string]: any;
    };
    icon_url: string;
    interactive_resources: The1002025春节互动表情_InteractiveResource[];
    special_resources: The1002025春节互动表情_SpecialResource[];
    [property: string]: any;
};
type The1002025春节互动表情_InteractiveResource = {
    animate_type: string;
    animate_url: string;
    display_name: string;
    extra: PurpleExtra$2;
    height: number;
    resource_type: number;
    static_type: string;
    static_url: string;
    static_url_list: PurpleStaticurlList[];
    sticker_info_source: string;
    version: number;
    visible_end_time: number;
    width: number;
    [property: string]: any;
};
type PurpleExtra$2 = {
    activity_scene?: string;
    hint_content?: string;
    light_interaction: string;
    sticker_info_source?: string;
    [property: string]: any;
};
type PurpleStaticurlList = {
    static_type: string;
    static_url: string;
    [property: string]: any;
};
type The1002025春节互动表情_SpecialResource = {
    config: PurpleConfig;
    in_advance: boolean;
    name: string;
    relation_name: string[];
    special_resource: string;
    special_type: number;
    trigger_type: string;
    version: number;
    [property: string]: any;
};
type PurpleConfig = {
    continuous_show?: string;
    random_show: string;
    receiver_show?: string;
    sender_show?: string;
    [property: string]: any;
};
type The2025春节Android = {
    animate_icon: {
        [key: string]: any;
    };
    icon_url: string;
    interactive_resources: The2025春节AndroidInteractiveResource[];
    special_resources: The2025春节AndroidSpecialResource[];
    [property: string]: any;
};
type The2025春节AndroidInteractiveResource = {
    animate_type: string;
    animate_url: string;
    display_name: string;
    extra: FluffyExtra$2;
    height: number;
    resource_type: number;
    static_type: string;
    static_url: string;
    static_url_list: FluffyStaticurlList[];
    sticker_info_source: string;
    version: number;
    visible_end_time: number;
    width: number;
    [property: string]: any;
};
type FluffyExtra$2 = {
    activity_scene?: string;
    hint_content?: string;
    light_interaction: string;
    sticker_info_source?: string;
    [property: string]: any;
};
type FluffyStaticurlList = {
    static_type: string;
    static_url: string;
    [property: string]: any;
};
type The2025春节AndroidSpecialResource = {
    config: FluffyConfig;
    in_advance: boolean;
    name: string;
    relation_name: string[];
    special_resource: string;
    special_type: number;
    trigger_type: string;
    version: number;
    [property: string]: any;
};
type FluffyConfig = {
    continuous_show?: string;
    random_show: string;
    receiver_show?: string;
    sender_show?: string;
    [property: string]: any;
};
type The2025春节Android更新 = {
    animate_icon: {
        [key: string]: any;
    };
    icon_url: string;
    interactive_resources: The2025春节Android更新_InteractiveResource[];
    special_resources: The2025春节Android更新_SpecialResource[];
    [property: string]: any;
};
type The2025春节Android更新_InteractiveResource = {
    animate_type: string;
    animate_url: string;
    display_name: string;
    extra: TentacledExtra$1;
    height: number;
    resource_type: number;
    static_type: string;
    static_url: string;
    static_url_list: TentacledStaticurlList[];
    sticker_info_source: string;
    version: number;
    visible_end_time: number;
    width: number;
    [property: string]: any;
};
type TentacledExtra$1 = {
    activity_scene?: string;
    hint_content?: string;
    light_interaction: string;
    sticker_info_source?: string;
    [property: string]: any;
};
type TentacledStaticurlList = {
    static_type: string;
    static_url: string;
    [property: string]: any;
};
type The2025春节Android更新_SpecialResource = {
    config: TentacledConfig;
    in_advance: boolean;
    name: string;
    relation_name: string[];
    special_resource: string;
    special_type: number;
    trigger_type: string;
    version: number;
    [property: string]: any;
};
type TentacledConfig = {
    continuous_show?: string;
    random_show: string;
    receiver_show?: string;
    sender_show?: string;
    [property: string]: any;
};
type 互动表情升级一期 = {
    animate_icon: {
        [key: string]: any;
    };
    icon_url: string;
    interactive_resources: 互动表情升级一期_InteractiveResource[];
    special_resources: 互动表情升级一期_SpecialResource[];
    [property: string]: any;
};
type 互动表情升级一期_InteractiveResource = {
    animate_type: string;
    animate_url: string;
    display_name: string;
    extra: StickyExtra$1;
    height: number;
    resource_type: number;
    static_type: string;
    static_url: string;
    static_url_list: StickyStaticurlList[];
    sticker_info_source: string;
    version: number;
    width: number;
    [property: string]: any;
};
type StickyExtra$1 = {
    light_interaction: string;
    [property: string]: any;
};
type StickyStaticurlList = {
    static_type: string;
    static_url: string;
    [property: string]: any;
};
type 互动表情升级一期_SpecialResource = {
    config: StickyConfig;
    in_advance: boolean;
    name: string;
    relation_name: string[];
    special_resource: string;
    special_type: number;
    trigger_type: string;
    version: number;
    [property: string]: any;
};
type StickyConfig = {
    continuous_show?: string;
    random_show: string;
    receiver_show?: string;
    sender_show?: string;
    [property: string]: any;
};
type LogPb$8 = {
    impr_id: string;
    [property: string]: any;
};
type ReportToggles = {
    actionbar_diff: number;
    flame_achieve: number;
    interactive_resources: number;
    interactive_resources_v2: number;
    plus_panel_diff: number;
    [property: string]: any;
};

/** 图集作品 */
type DyImageAlbumWork = {
    aweme_detail: AwemeDetail$2;
    log_pb: LogPb$7;
    status_code: number;
    [property: string]: any;
};
type AwemeDetail$2 = {
    activity_video_type: number;
    anchors: null;
    authentication_token: string;
    author: Author$5;
    author_mask_tag: number;
    author_user_id: number;
    aweme_control: AwemeControl$3;
    aweme_id: string;
    aweme_listen_struct: AwemeListenStruct$3;
    aweme_type: number;
    aweme_type_tags: string;
    boost_status: number;
    can_cache_to_local: boolean;
    caption: string;
    cf_recheck_ts: number;
    challenge_position: null;
    chapter_list: null;
    collect_stat: number;
    collection_corner_mark: number;
    comment_gid: number;
    comment_list: null;
    comment_permission_info: CommentPermissionInfo$3;
    commerce_config_data: null;
    component_control: ComponentControl$3;
    component_info_v2: string;
    cover_labels: null;
    create_time: number;
    desc: string;
    disable_relation_bar: number;
    dislike_dimension_list: null;
    dislike_dimension_list_v2: null;
    distribute_circle: DistributeCircle$3;
    duet_aggregate_in_music_tab: boolean;
    duration: number;
    ecom_comment_atmosphere_type: number;
    enable_comment_sticker_rec: boolean;
    entertainment_product_info: EntertainmentProductInfo$4;
    fall_card_struct: FallCardStruct$2;
    feed_comment_config: FeedCommentConfig$3;
    flash_mob_trends: number;
    friend_interaction: number;
    friend_recommend_info: {
        [key: string]: any;
    };
    game_tag_info: GameTagInfo$3;
    geofencing: string[];
    geofencing_regions: null;
    group_id: string;
    guide_scene_info: {
        [key: string]: any;
    };
    hybrid_label: null;
    image_album_music_info: ImageAlbumMusicInfo$3;
    image_comment: {
        [key: string]: any;
    };
    image_crop_ctrl: number;
    image_infos: null;
    image_item_quality_level: number;
    image_list: null;
    images: Image$1[];
    img_bitrate: string[];
    impression_data: ImpressionData$4;
    incentive_item_type: number;
    interaction_stickers: null;
    is_24_story: number;
    is_ads: boolean;
    is_collects_selected: number;
    is_duet_sing: boolean;
    is_image_beat: boolean;
    is_life_item: boolean;
    is_multi_content: number;
    is_share_post: boolean;
    is_story: number;
    is_top: number;
    is_use_music: boolean;
    item_title: string;
    item_warn_notification: ItemWarnNotification$3;
    label_top_text: null;
    libfinsert_task_id: string;
    long_video: null;
    mark_largely_following: boolean;
    media_type: number;
    music: Music$4;
    nickname_position: null;
    origin_comment_ids: null;
    origin_duet_resource_uri: string;
    origin_text_extra: string[];
    original: number;
    original_images: null;
    packed_clips: null;
    personal_page_botton_diagnose_style: number;
    photo_search_entrance: PhotoSearchEntrance$3;
    play_progress: PlayProgress$3;
    position: null;
    preview_title: string;
    preview_video_status: number;
    promotions: string[];
    publish_plus_alienation: PublishPlusAlienation$3;
    rate: number;
    region: string;
    relation_labels: null;
    risk_infos: RiskInfos$3;
    seo_info: {
        [key: string]: any;
    };
    series_paid_info: SeriesPaidInfo$3;
    share_info: AwemeDetailShareInfo$2;
    share_rec_extra: string;
    share_url: string;
    shoot_way: string;
    should_open_ad_report: boolean;
    show_follow_button: {
        [key: string]: any;
    };
    social_tag_list: null;
    statistics: Statistics$4;
    status: Status$3;
    suggest_words: SuggestWords$4;
    text_extra: TextExtra$3[];
    uniqid_position: null;
    user_digged: number;
    user_recommend_status: number;
    video: Video$5;
    video_control: VideoControl$4;
    video_game_data_channel_config: {
        [key: string]: any;
    };
    video_labels: null;
    video_share_edit_status: number;
    video_tag: VideoTag$3[];
    video_text: string[];
    visual_search_info: VisualSearchInfo$3;
    vtag_search: VtagSearch$2;
    xigua_base_info: XiguaBaseInfo$3;
    [property: string]: any;
};
type Author$5 = {
    account_cert_info: string;
    avatar_thumb: AuthorAvatarThumb$3;
    awemehts_greet_info: string;
    cf_list: null;
    close_friend_type: number;
    contacts_status: number;
    contrail_list: null;
    cover_url: Coverurl$4[];
    create_time: number;
    custom_verify: string;
    data_label_list: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    favoriting_count: number;
    follow_status: number;
    follower_count: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    following_count: number;
    im_role_ids: null;
    is_ad_fake: boolean;
    is_blocked_v2: boolean;
    is_blocking_v2: boolean;
    is_cf: number;
    live_high_value: number;
    mate_add_permission: number;
    max_follower_count: number;
    nickname: string;
    offline_info_list: null;
    personal_tag_list: null;
    prevent_download: boolean;
    risk_notice_text: string;
    sec_uid: string;
    secret: number;
    share_info: AuthorShareInfo$3;
    short_id: string;
    signature: string;
    signature_extra: null;
    special_follow_status: number;
    special_people_labels: null;
    status: number;
    text_extra: null;
    total_favorited: number;
    uid: string;
    unique_id: string;
    user_age: number;
    user_canceled: boolean;
    user_permissions: null;
    verification_type: number;
    [property: string]: any;
};
type AuthorAvatarThumb$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverurl$4 = {
    height?: number;
    uri?: string;
    url_list?: string[];
    width?: number;
    [property: string]: any;
};
type AuthorShareInfo$3 = {
    share_desc: string;
    share_desc_info: string;
    share_qrcode_url: ShareQrcodeurl$4;
    share_title: string;
    share_title_myself: string;
    share_title_other: string;
    share_url: string;
    share_weibo_desc: string;
    [property: string]: any;
};
type ShareQrcodeurl$4 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AwemeControl$3 = {
    can_comment: boolean;
    can_forward: boolean;
    can_share: boolean;
    can_show_comment: boolean;
    [property: string]: any;
};
type AwemeListenStruct$3 = {
    trace_info: string;
    [property: string]: any;
};
type CommentPermissionInfo$3 = {
    can_comment: boolean;
    comment_permission_status: number;
    item_detail_entry: boolean;
    press_entry: boolean;
    toast_guide: boolean;
    [property: string]: any;
};
type ComponentControl$3 = {
    data_source_url: string;
    [property: string]: any;
};
type DistributeCircle$3 = {
    campus_block_interaction: boolean;
    distribute_type: number;
    is_campus: boolean;
    [property: string]: any;
};
type EntertainmentProductInfo$4 = {
    market_info: MarketInfo$4;
    [property: string]: any;
};
type MarketInfo$4 = {
    limit_free: LimitFree$4;
    [property: string]: any;
};
type LimitFree$4 = {
    in_free: boolean;
    [property: string]: any;
};
type FallCardStruct$2 = {
    recommend_reason_v2: string;
    [property: string]: any;
};
type FeedCommentConfig$3 = {
    author_audit_status: number;
    input_config_text: string;
    [property: string]: any;
};
type GameTagInfo$3 = {
    is_game: boolean;
    [property: string]: any;
};
type ImageAlbumMusicInfo$3 = {
    begin_time: number;
    end_time: number;
    volume: number;
    [property: string]: any;
};
type Image$1 = {
    download_url_list: string[];
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type ImpressionData$4 = {
    group_id_list_a: string[];
    group_id_list_b: string[];
    group_id_list_c: string[];
    similar_id_list_a: null;
    similar_id_list_b: null;
    [property: string]: any;
};
type ItemWarnNotification$3 = {
    content: string;
    show: boolean;
    type: number;
    [property: string]: any;
};
type Music$4 = {
    album: string;
    artist_user_infos: null;
    artists: string[];
    audition_duration: number;
    author: string;
    author_deleted: boolean;
    author_position: null;
    author_status: number;
    avatar_large: AvatarLarge$3;
    avatar_medium: AvatarMedium$4;
    avatar_thumb: MusicAvatarThumb$3;
    binded_challenge_id: number;
    can_background_play: boolean;
    collect_stat: number;
    cover_hd: Coverhd$4;
    cover_large: CoverLarge$4;
    cover_medium: MusicCoverMedium$1;
    cover_thumb: CoverThumb$5;
    dmv_auto_show: boolean;
    dsp_status: number;
    duration: number;
    end_time: number;
    external_song_info: string[];
    extra: string;
    id: number;
    id_str: string;
    is_audio_url_with_cookie: boolean;
    is_commerce_music: boolean;
    is_del_video: boolean;
    is_matched_metadata: boolean;
    is_original: boolean;
    is_original_sound: boolean;
    is_pgc: boolean;
    is_restricted: boolean;
    is_video_self_see: boolean;
    lyric_short_position: null;
    matched_pgc_sound: MatchedPgcSound$2;
    mid: string;
    music_chart_ranks: null;
    music_collect_count: number;
    music_cover_atmosphere_color_value: string;
    music_status: number;
    musician_user_infos: null;
    mute_share: boolean;
    offline_desc: string;
    owner_handle: string;
    owner_id: string;
    owner_nickname: string;
    pgc_music_type: number;
    play_url: Playurl$5;
    position: null;
    prevent_download: boolean;
    prevent_item_download_status: number;
    preview_end_time: number;
    preview_start_time: number;
    reason_type: number;
    redirect: boolean;
    schema_url: string;
    search_impr: SearchImpr$4;
    sec_uid: string;
    shoot_duration: number;
    song: Song$3;
    source_platform: number;
    start_time: number;
    status: number;
    strong_beat_url: StrongBeaturl$4;
    tag_list: null;
    title: string;
    unshelve_countries: null;
    user_count: number;
    video_duration: number;
    [property: string]: any;
};
type AvatarLarge$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarMedium$4 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MusicAvatarThumb$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverhd$4 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverLarge$4 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MusicCoverMedium$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverThumb$5 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MatchedPgcSound$2 = {
    author: string;
    cover_medium: MatchedPgcSoundCoverMedium$2;
    mixed_author: string;
    mixed_title: string;
    title: string;
    [property: string]: any;
};
type MatchedPgcSoundCoverMedium$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Playurl$5 = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type SearchImpr$4 = {
    entity_id: string;
    [property: string]: any;
};
type Song$3 = {
    artists: null;
    id: number;
    id_str: string;
    [property: string]: any;
};
type StrongBeaturl$4 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PhotoSearchEntrance$3 = {
    ecom_type: number;
    [property: string]: any;
};
type PlayProgress$3 = {
    last_modified_time: number;
    play_progress: number;
    [property: string]: any;
};
type PublishPlusAlienation$3 = {
    alienation_type: number;
    [property: string]: any;
};
type RiskInfos$3 = {
    content: string;
    risk_sink: boolean;
    type: number;
    vote: boolean;
    warn: boolean;
    [property: string]: any;
};
type SeriesPaidInfo$3 = {
    item_price: number;
    series_paid_status: number;
    [property: string]: any;
};
type AwemeDetailShareInfo$2 = {
    share_desc: string;
    share_desc_info: string;
    share_link_desc: string;
    share_url: string;
    [property: string]: any;
};
type Statistics$4 = {
    admire_count: number;
    aweme_id: string;
    collect_count: number;
    comment_count: number;
    digg_count: number;
    play_count: number;
    share_count: number;
    [property: string]: any;
};
type Status$3 = {
    allow_share: boolean;
    aweme_id: string;
    in_reviewing: boolean;
    is_delete: boolean;
    is_prohibited: boolean;
    listen_video_status: number;
    part_see: number;
    private_status: number;
    review_result: ReviewResult$4;
    [property: string]: any;
};
type ReviewResult$4 = {
    review_status: number;
    [property: string]: any;
};
type SuggestWords$4 = {
    suggest_words: SuggestWord$4[];
    [property: string]: any;
};
type SuggestWord$4 = {
    hint_text?: string;
    icon_url?: string;
    scene?: string;
    words?: Word$5[];
    [property: string]: any;
};
type Word$5 = {
    info?: string;
    word?: string;
    word_id?: string;
    [property: string]: any;
};
type TextExtra$3 = {
    caption_end: number;
    caption_start: number;
    end: number;
    hashtag_id: string;
    hashtag_name: string;
    is_commerce: boolean;
    start: number;
    type: number;
    [property: string]: any;
};
type Video$5 = {
    audio: {
        [key: string]: any;
    };
    big_thumbs: BigThumb$2[];
    bit_rate_audio: null;
    cover: Cover$3;
    duration: number;
    has_watermark: boolean;
    height: number;
    is_h265: number;
    meta: string;
    origin_cover: OriginCover$3;
    play_addr: PlayAddr;
    ratio: string;
    width: number;
    [property: string]: any;
};
type BigThumb$2 = {
    duration?: number;
    fext?: string;
    img_num?: number;
    img_url?: string;
    img_urls?: string[];
    img_x_len?: number;
    img_x_size?: number;
    img_y_len?: number;
    img_y_size?: number;
    interval?: number;
    uri?: string;
    uris?: string[];
    [property: string]: any;
};
type Cover$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type OriginCover$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddr = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoControl$4 = {
    allow_douplus: boolean;
    allow_download: boolean;
    allow_duet: boolean;
    allow_dynamic_wallpaper: boolean;
    allow_music: boolean;
    allow_react: boolean;
    allow_record: boolean;
    allow_share: boolean;
    allow_stitch: boolean;
    disable_record_reason: string;
    download_ignore_visibility: boolean;
    download_info: DownloadInfo$4;
    draft_progress_bar: number;
    duet_ignore_visibility: boolean;
    duet_info: DuetInfo$4;
    prevent_download_type: number;
    share_grayed: boolean;
    share_ignore_visibility: boolean;
    share_type: number;
    show_progress_bar: number;
    timer_info: {
        [key: string]: any;
    };
    timer_status: number;
    [property: string]: any;
};
type DownloadInfo$4 = {
    level: number;
    [property: string]: any;
};
type DuetInfo$4 = {
    fail_info: FailInfo;
    level: number;
    [property: string]: any;
};
type FailInfo = {
    code: number;
    reason: string;
    [property: string]: any;
};
type VideoTag$3 = {
    level: number;
    tag_id: number;
    tag_name: string;
    [property: string]: any;
};
type VisualSearchInfo$3 = {
    is_ecom_img: boolean;
    is_high_accuracy_ecom: boolean;
    is_high_recall_ecom: boolean;
    is_show_img_entrance: boolean;
    visual_search_longpress: number;
    [property: string]: any;
};
type VtagSearch$2 = {
    vtag_delay_ts: number;
    vtag_enable: boolean;
    [property: string]: any;
};
type XiguaBaseInfo$3 = {
    item_id: number;
    star_altar_order_id: number;
    star_altar_type: number;
    status: number;
    [property: string]: any;
};
type LogPb$7 = {
    impr_id: string;
    [property: string]: any;
};

type DyMusicWork = {
    extra: Extra$4;
    feature_data: {
        [key: string]: any;
    };
    high_upload_ratio: number;
    log_pb: LogPb$6;
    msg: string;
    music_info: MusicInfo;
    rec_list: string[];
    related_effects: null;
    related_musics: null;
    small_banner: string[];
    status_code: number;
    trends_infos: null;
    [property: string]: any;
};
type Extra$4 = {
    fatal_item_ids: string[];
    logid: string;
    now: number;
    [property: string]: any;
};
type LogPb$6 = {
    impr_id: string;
    [property: string]: any;
};
type MusicInfo = {
    album: string;
    artist_user_infos: null;
    artists: string[];
    audition_duration: number;
    author: string;
    author_deleted: boolean;
    author_position: null;
    author_status: number;
    avatar_large: AvatarLarge$2;
    avatar_medium: AvatarMedium$3;
    avatar_thumb: AvatarThumb$2;
    binded_challenge_id: number;
    can_background_play: boolean;
    collect_stat: number;
    cover_hd: Coverhd$3;
    cover_large: CoverLarge$3;
    cover_medium: MusicInfoCoverMedium;
    cover_thumb: CoverThumb$4;
    dmv_auto_show: boolean;
    dsp_status: number;
    duration: number;
    end_time: number;
    external_song_info: string[];
    extra: string;
    id: number;
    id_str: string;
    is_audio_url_with_cookie: boolean;
    is_commerce_music: boolean;
    is_del_video: boolean;
    is_matched_metadata: boolean;
    is_original: boolean;
    is_original_sound: boolean;
    is_pgc: boolean;
    is_restricted: boolean;
    is_video_self_see: boolean;
    luna_info: LunaInfo;
    lyric_short_position: null;
    matched_pgc_sound: MatchedPgcSound$1;
    mid: string;
    music_chart_ranks: null;
    music_collect_count: number;
    music_cover_atmosphere_color_value: string;
    music_status: number;
    musician_user_infos: null;
    mute_share: boolean;
    offline_desc: string;
    original_musician_display_name: string;
    owner_handle: string;
    owner_id: string;
    owner_nickname: string;
    pgc_music_type: number;
    play_url: Playurl$4;
    position: null;
    prevent_download: boolean;
    prevent_item_download_status: number;
    preview_end_time: number;
    preview_start_time: number;
    reason_type: number;
    redirect: boolean;
    schema_url: string;
    search_impr: SearchImpr$3;
    sec_uid: string;
    share_info: ShareInfo$2;
    shoot_duration: number;
    song: Song$2;
    source_platform: number;
    start_time: number;
    status: number;
    strong_beat_url: StrongBeaturl$3;
    tag_list: null;
    title: string;
    trend_music_start_time: number;
    unified_music_group: UnifiedMusicGroup;
    unshelve_countries: null;
    user_count: number;
    video_duration: number;
    [property: string]: any;
};
type AvatarLarge$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarMedium$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarThumb$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverhd$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverLarge$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MusicInfoCoverMedium = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverThumb$4 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type LunaInfo = {
    has_copyright: boolean;
    is_luna_user: boolean;
    [property: string]: any;
};
type MatchedPgcSound$1 = {
    author: string;
    cover_medium: MatchedPgcSoundCoverMedium$1;
    id: number;
    mixed_author: string;
    mixed_title: string;
    title: string;
    [property: string]: any;
};
type MatchedPgcSoundCoverMedium$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Playurl$4 = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type SearchImpr$3 = {
    entity_id: string;
    [property: string]: any;
};
type ShareInfo$2 = {
    bool_persist: number;
    share_desc: string;
    share_desc_info: string;
    share_quote: string;
    share_signature_desc: string;
    share_signature_url: string;
    share_title: string;
    share_title_myself: string;
    share_title_other: string;
    share_url: string;
    share_weibo_desc: string;
    [property: string]: any;
};
type Song$2 = {
    artists: null;
    chorus_v3_infos: null;
    id: number;
    id_str: string;
    [property: string]: any;
};
type StrongBeaturl$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type UnifiedMusicGroup = {
    author: string;
    medium_cover_url: MediumCoverurl;
    song_id: number;
    title: string;
    [property: string]: any;
};
type MediumCoverurl = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};

type DySearchInfo = {
    ad_info: {
        [key: string]: any;
    };
    cursor: number;
    data: Datum$2[];
    douyin_ai_search_info: DouyinaiSearchInfo;
    extra: Extra$3;
    global_doodle_config: GlobalDoodleConfig;
    guide_search_words: GuideSearchWord[];
    has_more: number;
    log_pb: LogPb$5;
    multi_columns_info: MultiColumnsInfo;
    ops: null;
    path: string;
    polling_time: number;
    qc: string;
    status_code: number;
    time_cost: TimeCost$1;
    [property: string]: any;
};
type Datum$2 = {
    ala_src: string;
    aweme_info: AwemeInfo;
    aweme_list: null;
    bottom_source_info?: BottomSourceInfo;
    card_id: string;
    card_info: CardInfo;
    card_style_type?: number;
    card_type?: number;
    card_type_id: CardTypeid;
    card_unique_name: string;
    common_aladdin?: CommonAladdin;
    debug_data?: DebugData;
    debug_diff_info: {
        [key: string]: any;
    };
    doc_type: number;
    ecom_goods_list: null;
    feedback: Feedback;
    fp: string;
    log_data: LogData;
    lynx_info: LynxInfo;
    music_info_list: null;
    ops: null;
    provider_doc_id: number;
    provider_doc_id_str: string;
    qishui_music_list: null;
    send_back: string;
    show_tab: null;
    sub_card_list: null;
    tab: null;
    type: number;
    [property: string]: any;
};
type AwemeInfo = {
    anchor_info?: AnchorInfo$1;
    anchors: null;
    author: Author$4;
    author_user_id: number;
    aweme_id: string;
    aweme_type: number;
    cha_list: null;
    challenge_position: null;
    chapter_bar_color: null;
    chapter_list: null;
    collect_stat: number;
    comment_list: null;
    commerce_config_data: null;
    cover_labels: null;
    create_scale_type: null;
    create_time: number;
    danmaku_control: DanmakuControl$2;
    desc: string;
    dislike_dimension_list: null;
    dislike_dimension_list_v2: null;
    entertainment_product_info: EntertainmentProductInfo$3;
    fake_horizontal_info?: FakeHorizontalInfo;
    geofencing: null;
    geofencing_regions: null;
    group_id: string;
    hybrid_label: null;
    image_infos: null;
    image_list: null;
    images: null;
    img_bitrate: null;
    impression_data: ImpressionData$3;
    interaction_stickers: null;
    is_top: number;
    jump_tab_info_list: null;
    label_top_text: null;
    long_video: null;
    mix_info?: MixInfo;
    music: Music$3;
    mv_info: null;
    nickname_position: null;
    origin_comment_ids: null;
    origin_text_extra: null;
    original_images: null;
    packed_clips: null;
    position: null;
    prevent_download: boolean;
    promotions: null;
    rawdata: string;
    ref_tts_id_list: null;
    ref_voice_modify_id_list: null;
    relation_labels: null;
    reply_smart_emojis: null;
    share_info: ShareInfo$1;
    slides_music_beats: null;
    social_tag_list: null;
    standard_bar_info_list: null;
    statistics: Statistics$3;
    status: AwemeInfoStatus;
    suggest_words: SuggestWords$3;
    text_extra: TextExtra$2[];
    trends_infos: null;
    tts_id_list: null;
    uniqid_position: null;
    user_digged: number;
    video: Video$4;
    video_control: VideoControl$3;
    video_labels: null;
    video_tag: null;
    video_text: null;
    voice_modify_id_list: null;
    yumme_recreason: null;
    [property: string]: any;
};
type AnchorInfo$1 = {
    content: string;
    extra: string;
    icon: Icon$2;
    id: string;
    log_extra: string;
    mp_url: string;
    open_url: string;
    style_info: StyleInfo$1;
    title: string;
    title_tag: string;
    type: number;
    web_url: string;
    [property: string]: any;
};
type Icon$2 = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type StyleInfo$1 = {
    default_icon: string;
    extra: string;
    scene_icon: string;
    [property: string]: any;
};
type Author$4 = {
    account_cert_info: string;
    ad_cover_url: null;
    avatar_schema_list: null;
    avatar_thumb: AuthorAvatarThumb$2;
    ban_user_functions: null;
    batch_unfollow_contain_tabs: null;
    batch_unfollow_relation_desc: null;
    can_set_geofencing: null;
    card_entries: null;
    card_entries_not_display: null;
    card_sort_priority: null;
    cf_list: null;
    cha_list: null;
    contrail_list: null;
    cover_url: null;
    creator_tag_list: null;
    custom_verify: string;
    data_label_list: null;
    display_info: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    familiar_visitor_user: null;
    follow_status: number;
    follower_count: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    followers_detail: null;
    geofencing: null;
    homepage_bottom_toast: null;
    im_role_ids: null;
    interest_tags: null;
    item_list: null;
    link_item_list: null;
    need_points: null;
    new_story_cover: null;
    nickname: string;
    not_seen_item_id_list: null;
    not_seen_item_id_list_v2: null;
    offline_info_list: null;
    personal_tag_list: null;
    platform_sync_info: null;
    private_relation_list: null;
    profile_mob_params: null;
    relative_users: null;
    room_data: string;
    room_id: number;
    room_id_str: string;
    sec_uid: string;
    secret: number;
    signature_extra: null;
    special_people_labels: null;
    text_extra: null;
    total_favorited: number;
    type_label: null;
    uid: string;
    user_permissions: null;
    user_tags: null;
    verification_permission_ids: null;
    white_cover_url: null;
    [property: string]: any;
};
type AuthorAvatarThumb$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DanmakuControl$2 = {
    activities: null;
    enable_danmaku: boolean;
    is_post_denied: boolean;
    post_denied_reason: string;
    post_privilege_level: number;
    [property: string]: any;
};
type EntertainmentProductInfo$3 = {
    biz: number;
    market_info: MarketInfo$3;
    sub_title: null;
    [property: string]: any;
};
type MarketInfo$3 = {
    limit_free: LimitFree$3;
    marketing_tag: null;
    [property: string]: any;
};
type LimitFree$3 = {
    in_free: boolean;
    [property: string]: any;
};
type FakeHorizontalInfo = {
    bottom: number;
    left: number;
    right: number;
    top: number;
    [property: string]: any;
};
type ImpressionData$3 = {
    group_id_list_a: number[];
    group_id_list_b: null;
    group_id_list_c: number[];
    similar_id_list_a: number[];
    similar_id_list_b: number[];
    [property: string]: any;
};
type MixInfo = {
    cover_url: Coverurl$3;
    extra: string;
    ids: null;
    mix_id: string;
    mix_name: string;
    mix_type: number;
    paid_episodes: null;
    statis: Statis;
    status: MixInfoStatus;
    watched_item: string;
    [property: string]: any;
};
type Coverurl$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Statis = {
    collect_vv: number;
    current_episode: number;
    play_vv: number;
    updated_to_episode: number;
    [property: string]: any;
};
type MixInfoStatus = {
    is_collected: number;
    status: number;
    [property: string]: any;
};
type Music$3 = {
    album: string;
    artist_user_infos: null;
    artists: null;
    author: string;
    author_position: null;
    avatar_thumb: MusicAvatarThumb$2;
    binded_challenge_id: number;
    collect_stat: number;
    cover_medium: CoverMedium$2;
    cover_thumb: CoverThumb$3;
    duration: number;
    external_song_info: null;
    extra: string;
    id: number;
    id_str: string;
    is_original: boolean;
    lyric_short_position: null;
    mid: string;
    music_chart_ranks: null;
    musician_user_infos: null;
    owner_id: string;
    owner_nickname: string;
    play_url: Playurl$3;
    position: null;
    sec_uid: string;
    status: number;
    tag_list: null;
    title: string;
    unshelve_countries: null;
    user_count: number;
    [property: string]: any;
};
type MusicAvatarThumb$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverMedium$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverThumb$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Playurl$3 = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type ShareInfo$1 = {
    share_desc: string;
    share_desc_info: string;
    share_link_desc: string;
    share_quote: string;
    share_title: string;
    share_url: string;
    [property: string]: any;
};
type Statistics$3 = {
    collect_count: number;
    comment_count: number;
    digg_count: number;
    download_count: number;
    forward_count: number;
    live_watch_count: number;
    play_count: number;
    share_count: number;
    [property: string]: any;
};
type AwemeInfoStatus = {
    allow_share: boolean;
    in_reviewing: boolean;
    is_delete: boolean;
    is_private: boolean;
    is_prohibited: boolean;
    part_see: number;
    private_status: number;
    review_result: ReviewResult$3;
    [property: string]: any;
};
type ReviewResult$3 = {
    review_status: number;
    [property: string]: any;
};
type SuggestWords$3 = {
    suggest_words: SuggestWord$3[];
    [property: string]: any;
};
type SuggestWord$3 = {
    extra_info: string;
    hint_text: string;
    icon_url: string;
    scene: string;
    words: Word$4[];
    [property: string]: any;
};
type Word$4 = {
    info: string;
    word: string;
    word_id: string;
    [property: string]: any;
};
type TextExtra$2 = {
    end: number;
    hashtag_id: string;
    hashtag_name: string;
    is_commerce: boolean;
    sec_uid: string;
    start: number;
    type: number;
    user_id: string;
    [property: string]: any;
};
type Video$4 = {
    big_thumbs: BigThumb$1[];
    bit_rate: BitRate$3[];
    bit_rate_audio: BitRateAudio$1[] | null;
    cover: Cover$2;
    download_addr: DownloadAddr$2;
    download_suffix_logo_addr: DownloadSuffixLogoAddr$2;
    duration: number;
    dynamic_cover: DynamicCover$2;
    gaussian_cover: GaussianCover$2;
    has_download_suffix_logo_addr: boolean;
    height: number;
    meta: string;
    origin_cover: OriginCover$2;
    play_addr: VideoPlayAddr$2;
    play_addr_265: PlayAddr265$2;
    play_addr_lowbr: PlayAddrLowbr$1;
    ratio: string;
    raw_cover: RawCover$1;
    tags: null;
    video_model: string;
    width: number;
    [property: string]: any;
};
type BigThumb$1 = {
    duration: number;
    fext: string;
    img_num: number;
    img_url: string;
    img_urls: string[];
    img_x_len: number;
    img_x_size: number;
    img_y_len: number;
    img_y_size: number;
    interval: number;
    uri: string;
    uris: string[];
    [property: string]: any;
};
type BitRate$3 = {
    bit_rate: number;
    format: string;
    FPS: number;
    gear_name: string;
    HDR_bit: string;
    HDR_type: string;
    is_bytevc1: number;
    is_h265: number;
    play_addr: BitRatePlayAddr$3;
    quality_type: number;
    video_extra: string;
    [property: string]: any;
};
type BitRatePlayAddr$3 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type BitRateAudio$1 = {
    audio_extra: string;
    audio_meta: AudioMeta$1;
    audio_quality: number;
    [property: string]: any;
};
type AudioMeta$1 = {
    bitrate: number;
    codec_type: string;
    encoded_type: string;
    file_hash: string;
    file_id: string;
    format: string;
    fps: number;
    logo_type: string;
    media_type: string;
    quality: string;
    quality_desc: string;
    size: number;
    sub_info: string;
    url_list: UrlList$1;
    [property: string]: any;
};
type UrlList$1 = {
    backup_url: string;
    fallback_url: string;
    main_url: string;
    [property: string]: any;
};
type Cover$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DownloadAddr$2 = {
    data_size: number;
    file_cs: string;
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DownloadSuffixLogoAddr$2 = {
    data_size: number;
    file_cs: string;
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DynamicCover$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type GaussianCover$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type OriginCover$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoPlayAddr$2 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddr265$2 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddrLowbr$1 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type RawCover$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoControl$3 = {
    allow_douplus: boolean;
    allow_download: boolean;
    allow_duet: boolean;
    allow_dynamic_wallpaper: boolean;
    allow_music: boolean;
    allow_react: boolean;
    allow_record: boolean;
    allow_share: boolean;
    allow_stitch: boolean;
    disable_record_reason: string;
    download_ignore_visibility: boolean;
    download_info: DownloadInfo$3;
    draft_progress_bar: number;
    duet_ignore_visibility: boolean;
    duet_info: DuetInfo$3;
    prevent_download_type: number;
    share_grayed: boolean;
    share_ignore_visibility: boolean;
    share_type: number;
    show_progress_bar: number;
    timer_info: TimerInfo;
    timer_status: number;
    [property: string]: any;
};
type DownloadInfo$3 = {
    fail_info?: DownloadInfoFailInfo$1;
    level: number;
    [property: string]: any;
};
type DownloadInfoFailInfo$1 = {
    code: number;
    msg: string;
    reason: string;
    [property: string]: any;
};
type DuetInfo$3 = {
    fail_info?: DuetInfoFailInfo$1;
    level: number;
    [property: string]: any;
};
type DuetInfoFailInfo$1 = {
    code: number;
    reason: string;
    [property: string]: any;
};
type TimerInfo = {
    timer_status: number;
    [property: string]: any;
};
type BottomSourceInfo = {
    avatar: string;
    darkAvatar: string;
    source: string;
    [property: string]: any;
};
type CardInfo = {
    ala_src: string;
    cell_type: number;
    display: Display$1;
    doc_id: number;
    highlight: null;
    id: number;
    id_str: string;
    keyinfo: {
        [key: string]: any;
    };
    now_time: string;
    tokens: string[];
    [property: string]: any;
};
type Display$1 = {
    content_origin: string;
    data_ext: Dataext;
    emphasized: Emphasized;
    info: Info$1;
    summary: Summary;
    title: Title;
    [property: string]: any;
};
type Dataext = {
    display_extra_data: DisplayExtraData;
    has_mipcdn: boolean;
    is_title_full_matched: boolean;
    [property: string]: any;
};
type DisplayExtraData = {
    accept_images_docid: string[];
    [property: string]: any;
};
type Emphasized = {
    summary: string;
    title: string;
    [property: string]: any;
};
type Info$1 = {
    _comment: string;
    app_download: boolean;
    docid: string;
    domain: string;
    host: string;
    icon_name: string;
    image_count: number;
    images: string[];
    is_web: boolean;
    preload: Preload;
    site_name: string;
    time_factor: number;
    time_factor_string: string;
    type: string;
    type_ext?: string;
    url: string;
    [property: string]: any;
};
type Preload = {
    css: string[];
    html: string[];
    js: string[];
    [property: string]: any;
};
type Summary = {
    b_pos: string[];
    marked: string;
    pos: string[];
    text: string;
    [property: string]: any;
};
type Title = {
    b_pos: string[];
    marked: string;
    pos: string[];
    text: string;
    [property: string]: any;
};
type CardTypeid = {
    ala_src: string;
    card_name: string;
    doc_type: number;
    performance_infos: PerformanceInfos;
    [property: string]: any;
};
type PerformanceInfos = {
    '105_toutiao_web': number;
    306?: number;
    double_column: number;
    is_native: number;
    search_card_count: number;
    [property: string]: any;
};
type CommonAladdin = {
    ala_src: string;
    attached_info: AttachedInfo;
    display: string;
    doc_id: number;
    extended_displays: null;
    sub_common_aladdin: null;
    [property: string]: any;
};
type AttachedInfo = {
    aweme_list: null;
    coupon_list: null;
    mix_data_list: null;
    music_list: null;
    user_list: null;
    [property: string]: any;
};
type DebugData = {
    filter_debug_info_list: null;
    [property: string]: any;
};
type Feedback = {
    url: string;
    [property: string]: any;
};
type LogData = {
    dcm: string;
    entity_paths: string;
    search_result_id: string;
    token_type: string;
    [property: string]: any;
};
type LynxInfo = {
    is_subcard: boolean;
    [property: string]: any;
};
type DouyinaiSearchInfo = {
    ai_search_req_patch: {
        [key: string]: any;
    };
    is_hit_high_risk: boolean;
    is_simple_qa_intent: boolean;
    [property: string]: any;
};
type Extra$3 = {
    fatal_item_ids: string[];
    logid: string;
    now: number;
    search_request_id: string;
    [property: string]: any;
};
type GlobalDoodleConfig = {
    keyword: string;
    [property: string]: any;
};
type GuideSearchWord = {
    attached_text: null;
    id: string;
    query_id: string;
    type: string;
    word: string;
    [property: string]: any;
};
type LogPb$5 = {
    impr_id: string;
    [property: string]: any;
};
type MultiColumnsInfo = {
    group_tag: string;
    is_multi_columns: boolean;
    [property: string]: any;
};
type TimeCost$1 = {
    stream_inner: number;
    [property: string]: any;
};

/** 合辑作品 */
type DySlidesWork = {
    aweme_detail: AwemeDetail$1;
    log_pb: LogPb$4;
    status_code: number;
    [property: string]: any;
};
type AwemeDetail$1 = {
    activity_video_type: number;
    anchors: null;
    authentication_token: string;
    author: Author$3;
    author_mask_tag: number;
    author_user_id: number;
    aweme_control: AwemeControl$2;
    aweme_id: string;
    aweme_listen_struct: AwemeListenStruct$2;
    aweme_type: number;
    aweme_type_tags: string;
    boost_status: number;
    can_cache_to_local: boolean;
    caption: string;
    category_da: number;
    cf_recheck_ts: number;
    challenge_position: null;
    chapter_list: null;
    clip_paging: ClipPaging;
    collect_stat: number;
    collection_corner_mark: number;
    comment_gid: number;
    comment_list: null;
    comment_permission_info: CommentPermissionInfo$2;
    commerce_config_data: null;
    component_control: ComponentControl$2;
    component_info_v2: string;
    cover_labels: null;
    create_scale_type: string[];
    create_time: number;
    desc: string;
    disable_relation_bar: number;
    dislike_dimension_list: null;
    dislike_dimension_list_v2: null;
    distribute_circle: DistributeCircle$2;
    duet_aggregate_in_music_tab: boolean;
    duration: number;
    ecom_comment_atmosphere_type: number;
    enable_comment_sticker_rec: boolean;
    entertainment_product_info: EntertainmentProductInfo$2;
    fall_card_struct: FallCardStruct$1;
    feed_comment_config: FeedCommentConfig$2;
    flash_mob_trends: number;
    friend_interaction: number;
    friend_recommend_info: {
        [key: string]: any;
    };
    game_tag_info: GameTagInfo$2;
    geofencing: string[];
    geofencing_regions: null;
    group_id: string;
    guide_scene_info: {
        [key: string]: any;
    };
    hybrid_label: null;
    image_album_music_info: ImageAlbumMusicInfo$2;
    image_comment: {
        [key: string]: any;
    };
    image_crop_ctrl: number;
    image_infos: null;
    image_list: null;
    images: Image[];
    img_bitrate: null;
    impression_data: ImpressionData$2;
    incentive_item_type: number;
    interaction_stickers: null;
    is_24_story: number;
    is_ads: boolean;
    is_collects_selected: number;
    is_duet_sing: boolean;
    is_image_beat: boolean;
    is_life_item: boolean;
    is_multi_content: number;
    is_share_post: boolean;
    is_slides: boolean;
    is_slides_beat: number;
    is_story: number;
    is_top: number;
    is_use_music: boolean;
    item_title: string;
    item_warn_notification: ItemWarnNotification$2;
    label_top_text: null;
    libfinsert_task_id: string;
    long_video: null;
    mark_largely_following: boolean;
    media_type: number;
    music: Music$2;
    nickname_position: null;
    origin_comment_ids: null;
    origin_duet_resource_uri: string;
    origin_text_extra: string[];
    original: number;
    original_images: null;
    packed_clips: null;
    personal_page_botton_diagnose_style: number;
    photo_search_entrance: PhotoSearchEntrance$2;
    play_progress: PlayProgress$2;
    position: null;
    preview_title: string;
    preview_video_status: number;
    promotions: string[];
    publish_plus_alienation: PublishPlusAlienation$2;
    rate: number;
    region: string;
    relation_labels: null;
    risk_infos: RiskInfos$2;
    seo_info: SeoInfo;
    series_paid_info: SeriesPaidInfo$2;
    share_info: AwemeDetailShareInfo$1;
    share_rec_extra: string;
    share_url: string;
    shoot_way: string;
    should_open_ad_report: boolean;
    show_follow_button: {
        [key: string]: any;
    };
    social_tag_list: null;
    statistics: Statistics$2;
    status: Status$2;
    suggest_words: SuggestWords$2;
    text_extra: TextExtra$1[];
    uniqid_position: null;
    user_digged: number;
    user_recommend_status: number;
    video: AwemeDetailVideo;
    video_control: VideoControl$2;
    video_game_data_channel_config: {
        [key: string]: any;
    };
    video_labels: null;
    video_share_edit_status: number;
    video_tag: VideoTag$2[];
    video_text: string[];
    visual_search_info: VisualSearchInfo$2;
    xigua_base_info: XiguaBaseInfo$2;
    [property: string]: any;
};
type Author$3 = {
    account_cert_info: string;
    avatar_thumb: AvatarThumb$1;
    awemehts_greet_info: string;
    cf_list: null;
    close_friend_type: number;
    contacts_status: number;
    contrail_list: null;
    cover_url: Coverurl$2[];
    create_time: number;
    custom_verify: string;
    data_label_list: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    favoriting_count: number;
    follow_status: number;
    follower_count: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    following_count: number;
    im_role_ids: null;
    is_ad_fake: boolean;
    is_blocked_v2: boolean;
    is_blocking_v2: boolean;
    is_cf: number;
    live_high_value: number;
    mate_add_permission: number;
    max_follower_count: number;
    nickname: string;
    offline_info_list: null;
    personal_tag_list: null;
    prevent_download: boolean;
    risk_notice_text: string;
    sec_uid: string;
    secret: number;
    share_info: AuthorShareInfo$2;
    short_id: string;
    signature: string;
    signature_extra: null;
    special_follow_status: number;
    special_people_labels: null;
    status: number;
    text_extra: null;
    total_favorited: number;
    uid: string;
    unique_id: string;
    user_age: number;
    user_canceled: boolean;
    user_permissions: null;
    verification_type: number;
    [property: string]: any;
};
type AvatarThumb$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverurl$2 = {
    height?: number;
    uri?: string;
    url_list?: string[];
    width?: number;
    [property: string]: any;
};
type AuthorShareInfo$2 = {
    share_desc: string;
    share_desc_info: string;
    share_qrcode_url: ShareQrcodeurl$3;
    share_title: string;
    share_title_myself: string;
    share_title_other: string;
    share_url: string;
    share_weibo_desc: string;
    [property: string]: any;
};
type ShareQrcodeurl$3 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AwemeControl$2 = {
    can_comment: boolean;
    can_forward: boolean;
    can_share: boolean;
    can_show_comment: boolean;
    [property: string]: any;
};
type AwemeListenStruct$2 = {
    trace_info: string;
    [property: string]: any;
};
type ClipPaging = {
    direct: number;
    has_more: boolean;
    source: string;
    [property: string]: any;
};
type CommentPermissionInfo$2 = {
    can_comment: boolean;
    comment_permission_status: number;
    item_detail_entry: boolean;
    press_entry: boolean;
    toast_guide: boolean;
    [property: string]: any;
};
type ComponentControl$2 = {
    data_source_url: string;
    [property: string]: any;
};
type DistributeCircle$2 = {
    campus_block_interaction: boolean;
    distribute_type: number;
    is_campus: boolean;
    [property: string]: any;
};
type EntertainmentProductInfo$2 = {
    market_info: MarketInfo$2;
    [property: string]: any;
};
type MarketInfo$2 = {
    limit_free: LimitFree$2;
    [property: string]: any;
};
type LimitFree$2 = {
    in_free: boolean;
    [property: string]: any;
};
type FallCardStruct$1 = {
    recommend_reason_v2: string;
    [property: string]: any;
};
type FeedCommentConfig$2 = {
    author_audit_status: number;
    input_config_text: string;
    [property: string]: any;
};
type GameTagInfo$2 = {
    is_game: boolean;
    [property: string]: any;
};
type ImageAlbumMusicInfo$2 = {
    begin_time: number;
    end_time: number;
    volume: number;
    [property: string]: any;
};
type Image = {
    clip_type: number;
    download_url_list: string[];
    height: number;
    uri: string;
    url_list: string[];
    video: ImageVideo;
    width: number;
    [property: string]: any;
};
type ImageVideo = {
    big_thumbs: string[];
    bit_rate: BitRate$2[];
    bit_rate_audio: null;
    cdn_url_expired: number;
    cover: PurpleCover;
    download_addr: DownloadAddr$1;
    download_suffix_logo_addr: DownloadSuffixLogoAddr$1;
    duration: number;
    has_download_suffix_logo_addr: boolean;
    has_watermark: boolean;
    height: number;
    is_bytevc1: number;
    is_callback: boolean;
    is_h265: number;
    is_source_HDR: number;
    meta: string;
    need_set_token: boolean;
    origin_cover: PurpleOriginCover;
    play_addr: PurplePlayAddr;
    play_addr_h264: PlayAddrH264$2;
    play_addr_lowbr: PlayAddrLowbr;
    ratio: string;
    tags: null;
    width: number;
    [property: string]: any;
};
type BitRate$2 = {
    bit_rate: number;
    format: string;
    FPS: number;
    gear_name: string;
    HDR_bit: string;
    HDR_type: string;
    is_bytevc1: number;
    is_h265: number;
    play_addr: BitRatePlayAddr$2;
    quality_type: number;
    video_extra: string;
    [property: string]: any;
};
type BitRatePlayAddr$2 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PurpleCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DownloadAddr$1 = {
    data_size: number;
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DownloadSuffixLogoAddr$1 = {
    data_size: number;
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PurpleOriginCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PurplePlayAddr = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddrH264$2 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddrLowbr = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type ImpressionData$2 = {
    group_id_list_a: string[];
    group_id_list_b: string[];
    group_id_list_c: number[];
    similar_id_list_a: null;
    similar_id_list_b: null;
    [property: string]: any;
};
type ItemWarnNotification$2 = {
    content: string;
    show: boolean;
    type: number;
    [property: string]: any;
};
type Music$2 = {
    album: string;
    artist_user_infos: null;
    artists: string[];
    audition_duration: number;
    author: string;
    author_deleted: boolean;
    author_position: null;
    binded_challenge_id: number;
    can_background_play: boolean;
    collect_stat: number;
    cover_color_hsv: CoverColorHsv;
    cover_hd: Coverhd$2;
    cover_large: CoverLarge$2;
    cover_medium: CoverMedium$1;
    cover_thumb: CoverThumb$2;
    dmv_auto_show: boolean;
    dsp_status: number;
    duration: number;
    end_time: number;
    external_song_info: string[];
    extra: string;
    id: number;
    id_str: string;
    is_audio_url_with_cookie: boolean;
    is_commerce_music: boolean;
    is_del_video: boolean;
    is_matched_metadata: boolean;
    is_original: boolean;
    is_original_sound: boolean;
    is_pgc: boolean;
    is_restricted: boolean;
    is_video_self_see: boolean;
    lyric_short_position: null;
    mid: string;
    music_chart_ranks: null;
    music_collect_count: number;
    music_cover_atmosphere_color_value: string;
    music_status: number;
    musician_user_infos: null;
    mute_share: boolean;
    offline_desc: string;
    owner_handle: string;
    owner_nickname: string;
    pgc_music_type: number;
    play_url: Playurl$2;
    position: null;
    prevent_download: boolean;
    prevent_item_download_status: number;
    preview_end_time: number;
    preview_start_time: number;
    reason_type: number;
    redirect: boolean;
    schema_url: string;
    search_impr: SearchImpr$2;
    shoot_duration: number;
    song: Song$1;
    source_platform: number;
    start_time: number;
    status: number;
    strong_beat_url: StrongBeaturl$2;
    tag_list: null;
    title: string;
    unshelve_countries: null;
    user_count: number;
    video_duration: number;
    [property: string]: any;
};
type CoverColorHsv = {
    h: number;
    s: number;
    v: number;
    [property: string]: any;
};
type Coverhd$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverLarge$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverMedium$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverThumb$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Playurl$2 = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type SearchImpr$2 = {
    entity_id: string;
    [property: string]: any;
};
type Song$1 = {
    artists: null;
    chorus: Chorus;
    id: number;
    id_str: string;
    title: string;
    [property: string]: any;
};
type Chorus = {
    duration_ms: number;
    start_ms: number;
    [property: string]: any;
};
type StrongBeaturl$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PhotoSearchEntrance$2 = {
    ecom_type: number;
    [property: string]: any;
};
type PlayProgress$2 = {
    last_modified_time: number;
    play_progress: number;
    [property: string]: any;
};
type PublishPlusAlienation$2 = {
    alienation_type: number;
    [property: string]: any;
};
type RiskInfos$2 = {
    content: string;
    risk_sink: boolean;
    type: number;
    vote: boolean;
    warn: boolean;
    [property: string]: any;
};
type SeoInfo = {
    ocr_content: string;
    [property: string]: any;
};
type SeriesPaidInfo$2 = {
    item_price: number;
    series_paid_status: number;
    [property: string]: any;
};
type AwemeDetailShareInfo$1 = {
    share_desc: string;
    share_desc_info: string;
    share_link_desc: string;
    share_url: string;
    [property: string]: any;
};
type Statistics$2 = {
    admire_count: number;
    aweme_id: string;
    collect_count: number;
    comment_count: number;
    digg_count: number;
    play_count: number;
    share_count: number;
    [property: string]: any;
};
type Status$2 = {
    allow_share: boolean;
    aweme_id: string;
    in_reviewing: boolean;
    is_delete: boolean;
    is_prohibited: boolean;
    listen_video_status: number;
    part_see: number;
    private_status: number;
    review_result: ReviewResult$2;
    [property: string]: any;
};
type ReviewResult$2 = {
    review_status: number;
    [property: string]: any;
};
type SuggestWords$2 = {
    suggest_words: SuggestWord$2[];
    [property: string]: any;
};
type SuggestWord$2 = {
    hint_text?: string;
    icon_url?: string;
    scene?: string;
    words?: Word$3[];
    [property: string]: any;
};
type Word$3 = {
    info?: string;
    word?: string;
    word_id?: string;
    [property: string]: any;
};
type TextExtra$1 = {
    caption_end: number;
    caption_start: number;
    end: number;
    hashtag_id: string;
    hashtag_name: string;
    is_commerce: boolean;
    start: number;
    type: number;
    [property: string]: any;
};
type AwemeDetailVideo = {
    audio: {
        [key: string]: any;
    };
    big_thumbs: null;
    bit_rate_audio: null;
    cover: FluffyCover;
    duration: number;
    has_watermark: boolean;
    height: number;
    is_h265: number;
    meta: string;
    origin_cover: FluffyOriginCover;
    play_addr: FluffyPlayAddr;
    ratio: string;
    width: number;
    [property: string]: any;
};
type FluffyCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type FluffyOriginCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type FluffyPlayAddr = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoControl$2 = {
    allow_douplus: boolean;
    allow_download: boolean;
    allow_duet: boolean;
    allow_dynamic_wallpaper: boolean;
    allow_music: boolean;
    allow_react: boolean;
    allow_record: boolean;
    allow_share: boolean;
    allow_stitch: boolean;
    disable_record_reason: string;
    download_ignore_visibility: boolean;
    download_info: DownloadInfo$2;
    draft_progress_bar: number;
    duet_ignore_visibility: boolean;
    duet_info: DuetInfo$2;
    prevent_download_type: number;
    share_grayed: boolean;
    share_ignore_visibility: boolean;
    share_type: number;
    show_progress_bar: number;
    timer_info: {
        [key: string]: any;
    };
    timer_status: number;
    [property: string]: any;
};
type DownloadInfo$2 = {
    fail_info: DownloadInfoFailInfo;
    level: number;
    [property: string]: any;
};
type DownloadInfoFailInfo = {
    code: number;
    msg: string;
    reason: string;
    [property: string]: any;
};
type DuetInfo$2 = {
    fail_info: DuetInfoFailInfo;
    level: number;
    [property: string]: any;
};
type DuetInfoFailInfo = {
    code: number;
    reason: string;
    [property: string]: any;
};
type VideoTag$2 = {
    level: number;
    tag_id: number;
    tag_name: string;
    [property: string]: any;
};
type VisualSearchInfo$2 = {
    is_ecom_img: boolean;
    is_high_accuracy_ecom: boolean;
    is_high_recall_ecom: boolean;
    is_show_img_entrance: boolean;
    [property: string]: any;
};
type XiguaBaseInfo$2 = {
    item_id: number;
    star_altar_order_id: number;
    star_altar_type: number;
    status: number;
    [property: string]: any;
};
type LogPb$4 = {
    impr_id: string;
    [property: string]: any;
};

type DySuggestWords = {
    data: Datum$1[];
    errno: string;
    extra: Extra$2;
    log_id: string;
    msg: string;
    real_log_id: string;
    StabilityStatistics: StabilityStatistics;
    [property: string]: any;
};
type StabilityStatistics = {
    1: string;
    [property: string]: any;
};
type Datum$1 = {
    params?: DatumParams;
    source?: string;
    type?: string;
    words?: Word$2[];
    [property: string]: any;
};
type DatumParams = {
    extra_info: PurpleExtraInfo;
    from_gid: string;
    impr_id: string;
    query_id: string;
    [property: string]: any;
};
type PurpleExtraInfo = {
    msg: string;
    qrec_channel: string;
    qrec_channel_is_aweme: string;
    src_comment_id: string;
    src_group_id: string;
    [property: string]: any;
};
type Word$2 = {
    id: string;
    params: WordParams;
    word: string;
    [property: string]: any;
};
type WordParams = {
    extra_info: FluffyExtraInfo;
    from_gid: string;
    reason: string;
    [property: string]: any;
};
type FluffyExtraInfo = {
    mark: string;
    rel_info: string;
    [property: string]: any;
};
type Extra$2 = {
    call_per_refresh: string;
    qrec_extra: string;
    RespFrom: string;
    time_cost: TimeCost;
    [property: string]: any;
};
type TimeCost = {
    call_rpc_time: string;
    init_time: string;
    server_engine_cost: string;
    stream_inner: string;
    [property: string]: any;
};

type DyUserInfo = {
    extra: Extra$1;
    log_pb: LogPb$3;
    status_code: number;
    status_msg: null;
    user: User$1;
    [property: string]: any;
};
type Extra$1 = {
    fatal_item_ids: string[];
    logid: string;
    now: number;
    [property: string]: any;
};
type LogPb$3 = {
    impr_id: string;
    [property: string]: any;
};
type User$1 = {
    account_cert_info: string;
    apple_account: number;
    avatar_168x168: Avatar168X168;
    avatar_300x300: Avatar300X300;
    avatar_larger: AvatarLarger;
    avatar_medium: AvatarMedium$2;
    avatar_thumb: AvatarThumb;
    aweme_count: number;
    aweme_count_correction_threshold: number;
    birthday_hide_level: number;
    can_set_item_cover: boolean;
    can_show_group_card: number;
    card_entries: CardEntry[];
    city: null;
    close_friend_type: number;
    commerce_info: CommerceInfo;
    commerce_user_info: CommerceUserInfo;
    commerce_user_level: number;
    country: string;
    cover_and_head_image_info: CoverAndHeadImageInfo;
    cover_colour: string;
    cover_url: CoverurlElement[];
    custom_verify: string;
    district: null;
    dongtai_count: number;
    dynamic_cover: {
        [key: string]: any;
    };
    enable_ai_double: number;
    enable_wish: boolean;
    enterprise_user_info: string;
    enterprise_verify_reason: string;
    familiar_confidence: number;
    favorite_permission: number;
    favoriting_count: number;
    follow_status: number;
    follower_count: number;
    follower_request_status: number;
    follower_status: number;
    following_count: number;
    forward_count: number;
    gender: null;
    general_permission: GeneralPermission;
    has_e_account_role: boolean;
    has_subscription: boolean;
    im_primary_role_id: number;
    im_role_ids: number[];
    image_send_exempt: boolean;
    ins_id: string;
    ip_location: string;
    is_activity_user: boolean;
    is_ban: boolean;
    is_block: boolean;
    is_blocked: boolean;
    is_effect_artist: boolean;
    is_gov_media_vip: boolean;
    is_mix_user: boolean;
    is_not_show: boolean;
    is_series_user: boolean;
    is_sharing_profile_user: number;
    is_star: boolean;
    iso_country_code: string;
    life_story_block: LifeStoryBlock;
    live_commerce: boolean;
    live_status: number;
    mate_add_permission: number;
    mate_relation: MateRelation;
    max_follower_count: number;
    message_chat_entry: boolean;
    mix_count: number;
    mplatform_followers_count: number;
    new_friend_type: number;
    nickname: string;
    official_cooperation: OfficialCooperation;
    original_musician: OriginalMusician;
    pigeon_daren_status: string;
    pigeon_daren_warn_tag: string;
    profile_show: ProfileShow;
    profile_tab_type: number;
    province: null;
    public_collects_count: number;
    publish_landing_tab: number;
    r_fans_group_info: {
        [key: string]: any;
    };
    recommend_reason_relation: string;
    recommend_user_reason_source: number;
    risk_notice_text: string;
    role_id: string;
    room_id: number;
    room_id_str: string;
    school_name: null;
    sec_uid: string;
    secret: number;
    series_count: number;
    share_info: ShareInfo;
    short_id: string;
    show_favorite_list: boolean;
    show_subscription: boolean;
    signature: string;
    signature_display_lines: number;
    signature_language: string;
    social_real_relation_type: number;
    special_follow_status: number;
    story_tab_empty: boolean;
    sync_to_toutiao: number;
    tab_settings: TabSettings;
    total_favorited: number;
    total_favorited_correction_threshold: number;
    twitter_id: string;
    twitter_name: string;
    uid: string;
    unique_id: string;
    urge_detail: UrgeDetail;
    user_age: number;
    user_not_see: number;
    user_not_show: number;
    user_permissions: UserPermission[];
    verification_type: number;
    video_cover: {
        [key: string]: any;
    };
    video_icon: VideoIcon;
    watch_status: boolean;
    white_cover_url: WhiteCoverurl[];
    with_commerce_enterprise_tab_entry: boolean;
    with_commerce_entry: boolean;
    with_fusion_shop_entry: boolean;
    with_new_goods: boolean;
    youtube_channel_id: string;
    youtube_channel_title: string;
    [property: string]: any;
};
type Avatar168X168 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Avatar300X300 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarLarger = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarMedium$2 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CardEntry = {
    goto_url?: string;
    icon_dark?: IconDark;
    icon_light?: IconLight;
    sub_title?: string;
    title?: string;
    type?: number;
    [property: string]: any;
};
type IconDark = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type IconLight = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type CommerceInfo = {
    challenge_list: null;
    head_image_list: null;
    offline_info_list: string[];
    smart_phone_list: null;
    task_list: null;
    [property: string]: any;
};
type CommerceUserInfo = {
    ad_revenue_rits: null;
    has_ads_entry: boolean;
    show_star_atlas_cooperation: boolean;
    star_atlas: number;
    [property: string]: any;
};
type CoverAndHeadImageInfo = {
    cover_list: null;
    profile_cover_list: ProfileCoverList[];
    [property: string]: any;
};
type ProfileCoverList = {
    cover_url?: ProfileCoverListCoverurl;
    dark_cover_color?: string;
    light_cover_color?: string;
    [property: string]: any;
};
type ProfileCoverListCoverurl = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type CoverurlElement = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type GeneralPermission = {
    following_follower_list_toast: number;
    [property: string]: any;
};
type LifeStoryBlock = {
    life_story_block: boolean;
    [property: string]: any;
};
type MateRelation = {
    mate_apply_forward: number;
    mate_apply_reverse: number;
    mate_status: number;
    [property: string]: any;
};
type OfficialCooperation = {
    schema: string;
    text: string;
    track_type: string;
    [property: string]: any;
};
type OriginalMusician = {
    digg_count: number;
    music_count: number;
    music_used_count: number;
    [property: string]: any;
};
type ProfileShow = {
    identify_auth_infos: null;
    [property: string]: any;
};
type ShareInfo = {
    bool_persist: number;
    life_share_ext: string;
    share_desc: string;
    share_image_url: ShareImageurl;
    share_qrcode_url: ShareQrcodeurl$2;
    share_title: string;
    share_url: string;
    share_weibo_desc: string;
    [property: string]: any;
};
type ShareImageurl = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type ShareQrcodeurl$2 = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type TabSettings = {
    private_tab: PrivateTab;
    [property: string]: any;
};
type PrivateTab = {
    private_tab_style: number;
    show_private_tab: boolean;
    [property: string]: any;
};
type UrgeDetail = {
    ctl_map: string;
    user_urged: number;
    [property: string]: any;
};
type UserPermission = {
    key?: string;
    value?: string;
    [property: string]: any;
};
type VideoIcon = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type WhiteCoverurl = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};

type DyUserLiveVideos = {
    data: Data$h;
    extra: UserLiveVideosExtra;
    status_code: number;
    [property: string]: any;
};
type Data$h = {
    data: Datum[];
    enter_mode: number;
    enter_room_id: string;
    extra: DataExtra;
    login_lead: LoginLead;
    partition_road_map: PartitionRoadMap;
    qrcode_url: string;
    room_status: number;
    shark_decision_conf: string;
    similar_rooms: SimilarRoom[];
    user: User;
    web_stream_url: WebStreamurl;
    [property: string]: any;
};
type Datum = {
    admin_user_ids?: number[];
    admin_user_ids_str?: string[];
    admin_user_open_ids?: string[];
    admin_user_open_ids_str?: string[];
    AnchorABMap?: AnchorABMap;
    basis?: Basis;
    cover?: DatumCover;
    ecom_data?: DatumEcomData;
    has_commerce_goods?: boolean;
    id_str?: string;
    like_count?: number;
    linker_detail?: LinkerDetail;
    linker_map?: {
        [key: string]: any;
    };
    live_room_mode?: number;
    mosaic_status?: number;
    mosaic_status_str?: string;
    others?: DatumOthers;
    owner?: DatumOwner;
    owner_open_id_str?: string;
    owner_user_id_str?: string;
    paid_live_data?: DatumPaidLiveData;
    req_user?: ReqUser;
    room_auth?: RoomAuth;
    room_cart?: RoomCart;
    room_view_stats?: DatumRoomViewStats;
    scene_type_info?: SceneTypeInfo;
    short_touch_area_config?: ShortTouchAreaConfig;
    stats?: DatumStats;
    status?: number;
    status_str?: string;
    stream_url?: DatumStreamurl;
    title?: string;
    toolbar_data?: ToolbarData;
    user_count_str?: string;
    [property: string]: any;
};
type AnchorABMap = {
    ab_admin_comment_on_wall: string;
    ab_friend_chat: string;
    admin_privilege_refine: string;
    allow_shared_to_fans: string;
    audience_linkmic_continue: string;
    audio_double_enlarge_enable: string;
    audio_room_subtitle_opt: string;
    battle_match_rebuild_anchor: string;
    big_party_enable_open_camera: string;
    chat_intercommunicate_multi_anchor: string;
    chat_intercommunicate_pk: string;
    double_enlarge_enable: string;
    ecom_room_disable_gift: string;
    enable_enter_by_sharing: string;
    enable_link_guest_enter: string;
    enter_message_tip_relation: string;
    enter_source_mark: string;
    frequently_chat_ab_value: string;
    friend_room_audio_tuning: string;
    friend_room_support_ns_mode: string;
    friend_share_video_feature_type: string;
    game_link_entrance: string;
    gift_hide_tip: string;
    guest_battle_crown_upgrade: string;
    guest_battle_expand: string;
    guest_battle_score_expand: string;
    guest_battle_upgrade: string;
    interact_anchor_guide: string;
    ktv_anchor_enable_add_all: string;
    ktv_auto_mute_self: string;
    ktv_challenge_minus_gift: string;
    ktv_component_new_midi: string;
    ktv_enable_avatar: string;
    ktv_enable_open_camera: string;
    ktv_fragment_song: string;
    ktv_grab_guide_song: string;
    ktv_guide_song_switch: string;
    ktv_kick_when_linker_full: string;
    ktv_mc_host_show_tag: string;
    ktv_new_challenge: string;
    ktv_room_atmosphere: string;
    ktv_singing_hot_rank: string;
    ktv_video_stream_optimize: string;
    ktv_want_listen_enable: string;
    linkmic_multi_chorus: string;
    linkmic_order_sing_search_fingerprint: string;
    linkmic_order_sing_upgrade: string;
    linkmic_starwish: string;
    live_anchor_enable_chorus: string;
    live_anchor_enable_custom_position: string;
    live_anchor_hit_new_audience_linkmic: string;
    live_anchor_hit_position_opt: string;
    live_anchor_hit_video_bid_paid: string;
    live_anchor_hit_video_teamfight: string;
    live_answer_on_wall: string;
    live_audience_linkmic_pre_apply_v2: string;
    live_dou_plus_enter: string;
    live_ktv_enable_beat: string;
    live_ktv_group: string;
    live_ktv_show_singer_icon: string;
    live_ktv_singing_challenge: string;
    live_linkmic_battle_optimize: string;
    live_linkmic_ktv_anchor_lyric_mode: string;
    live_linkmic_order_sing_micro_opt: string;
    live_linkmic_order_sing_v3: string;
    live_pc_helper_new_layout: string;
    live_room_manage_style: string;
    live_team_fight_flexible: string;
    live_video_enable_c_position: string;
    live_video_enable_self_discipline: string;
    live_video_host_identity_enable: string;
    live_video_share: string;
    lonely_room_enter_msg_unfold: string;
    mark_user: string;
    merge_ktv_mode_enable: string;
    merge_ktv_optimize_enable: string;
    opt_audience_linkmic: string;
    opt_paid_link_feature_switch: string;
    optran_paid_linkmic: string;
    order_sing_mv: string;
    play_mode_opt_24: string;
    ps_use_new_panel: string;
    radio_prepare_apply: string;
    room_double_like: string;
    self_discipline_v2: string;
    self_discipline_v3: string;
    social_share_video_adjust_volume: string;
    support_multiple_add_price: string;
    themed_competition_v2: string;
    traffic_strategy: string;
    video_equal_1v8fix_switch: string;
    video_ktv_challenge: string;
    video_talk_enable_avatar: string;
    [property: string]: any;
};
type Basis = {
    foreign_user_room: number;
    is_customize_audio_room: boolean;
    need_request_luckybox: number;
    next_ping: number;
    secret_room: number;
    [property: string]: any;
};
type DatumCover = {
    url_list: string[];
    [property: string]: any;
};
type DatumEcomData = {
    instant_type: number;
    reds_show_infos: string[];
    [property: string]: any;
};
type LinkerDetail = {
    accept_audience_pre_apply: boolean;
    big_party_layout_config_version: number;
    client_ui_info: string;
    enable_audience_linkmic: number;
    enlarge_guest_turn_on_source: number;
    feature_list: string[];
    forbid_apply_from_other: boolean;
    function_type: string;
    init_source: string;
    ktv_exhibit_mode: number;
    ktv_lyric_mode: string;
    linker_map_str: {
        [key: string]: any;
    };
    linker_play_modes: string[];
    linker_ui_layout: number;
    manual_open_ui: number;
    playmode_detail: {
        [key: string]: any;
    };
    [property: string]: any;
};
type DatumOthers = {
    anchor_together_live: AnchorTogetherLive;
    appointment_info: AppointmentInfo;
    deco_detail: {
        [key: string]: any;
    };
    lvideo_item_id: number;
    metric_tracker_data_list: string[];
    more_panel_info: MorePanelInfo;
    mosaic_version: number;
    programme: Programme;
    recognition_containers: RecognitionContainers;
    web_live_port_optimization: PurpleWebLivePortOptimization;
    web_skin: WebSkin;
    [property: string]: any;
};
type AnchorTogetherLive = {
    is_show: boolean;
    is_together_live: number;
    scene: number;
    schema_url: string;
    title: string;
    user_list: string[];
    [property: string]: any;
};
type AppointmentInfo = {
    appointment_id: number;
    is_subscribe: boolean;
    [property: string]: any;
};
type MorePanelInfo = {
    load_strategy: number;
    [property: string]: any;
};
type Programme = {
    enable_programme: boolean;
    [property: string]: any;
};
type RecognitionContainers = {
    recognition_candidates: string[];
    [property: string]: any;
};
type PurpleWebLivePortOptimization = {
    strategy_config: PurpleStrategyConfig;
    strategy_extra: string;
    [property: string]: any;
};
type PurpleStrategyConfig = {
    background: PurpleBackground;
    detail: PurpleDetail;
    tab: PurpleTab;
    [property: string]: any;
};
type PurpleBackground = {
    pause_monitor_duration: string;
    strategy_type: number;
    use_config_duration: boolean;
    [property: string]: any;
};
type PurpleDetail = {
    pause_monitor_duration: string;
    strategy_type: number;
    use_config_duration: boolean;
    [property: string]: any;
};
type PurpleTab = {
    pause_monitor_duration: string;
    strategy_type: number;
    use_config_duration: boolean;
    [property: string]: any;
};
type WebSkin = {
    enable_skin: boolean;
    [property: string]: any;
};
type DatumOwner = {
    avatar_thumb: PurpleAvatarThumb$1;
    follow_info: PurpleFollowInfo;
    foreign_user: number;
    id_str: string;
    nickname: string;
    open_id_str: string;
    sec_uid: string;
    subscribe: PurpleSubscribe;
    [property: string]: any;
};
type PurpleAvatarThumb$1 = {
    url_list: string[];
    [property: string]: any;
};
type PurpleFollowInfo = {
    follow_status: number;
    follow_status_str: string;
    [property: string]: any;
};
type PurpleSubscribe = {
    buy_type: number;
    identity_type: number;
    is_member: boolean;
    level: number;
    open: number;
    [property: string]: any;
};
type DatumPaidLiveData = {
    anchor_right: number;
    delivery: number;
    duration: number;
    max_preview_duration: number;
    need_delivery_notice: boolean;
    paid_type: number;
    pay_ab_type: number;
    privilege_info: {
        [key: string]: any;
    };
    privilege_info_map: {
        [key: string]: any;
    };
    view_right: number;
    [property: string]: any;
};
type ReqUser = {
    enter_user_device_type: number;
    user_share_room_score: number;
    [property: string]: any;
};
type RoomAuth = {
    AdminCommentWall: number;
    AnchorMission: number;
    AudioChat: number;
    Banner: number;
    BulletStyle: number;
    CanSellTicket: number;
    CastScreen: number;
    CastScreenExplicit: number;
    Chat: boolean;
    Collect: number;
    CommentWall: number;
    CommerceCard: number;
    CommerceComponent: number;
    Danmaku: boolean;
    DanmakuDefault: number;
    Denounce: number;
    Digg: boolean;
    Dislike: number;
    DonationSticker: number;
    DouPlus: number;
    DouPlusPopularityGem: number;
    DownloadVideo: number;
    EmojiOutside: number;
    EnterEffects: number;
    ExpandScreen: number;
    FansClub: number;
    FansGroup: number;
    FirstFeedHistChat: number;
    FixedChat: number;
    GamePointsPlaying: number;
    Gift: boolean;
    GiftAnchorMt: number;
    Highlights: number;
    HourRank: number;
    IndustryService: number;
    KtvOrderSong: number;
    Landscape: number;
    LandscapeChat: number;
    Like: number;
    LongTouch: number;
    LuckMoney: boolean;
    MissionCenter: number;
    MoreAnchor: number;
    MoreHistChat: number;
    MultiplierPlayback: number;
    OnlyTa: number;
    POI: boolean;
    Poster: number;
    Props: boolean;
    PublicScreen: number;
    QuizGamePointsPlaying: number;
    RecordScreen: number;
    RoomContributor: boolean;
    Seek: number;
    Selection: number;
    SelectionAlbum: number;
    Share: number;
    ShowGamePlugin: number;
    SpecialStyle: SpecialStyle;
    StrokeUpDownGuide: number;
    TaskBanner: number;
    Teleprompter: number;
    TimedShutdown: number;
    Topic: number;
    TypingCommentState: number;
    UpRightStatsFloatingLayer: number;
    UserCard: boolean;
    UserCorner: number;
    VerticalRank: number;
    VSGift: number;
    VSRank: number;
    VSTopic: number;
    [property: string]: any;
};
type SpecialStyle = {
    Chat: Chat;
    Like: Like$2;
    [property: string]: any;
};
type Chat = {
    AnchorSwitchForPaidLive: number;
    Content: string;
    ContentForPaidLive: string;
    OffType: number;
    UnableStyle: number;
    [property: string]: any;
};
type Like$2 = {
    AnchorSwitchForPaidLive: number;
    Content: string;
    ContentForPaidLive: string;
    OffType: number;
    UnableStyle: number;
    [property: string]: any;
};
type RoomCart = {
    cart_icon: string;
    contain_cart: boolean;
    flash_total: number;
    show_cart: number;
    total: number;
    [property: string]: any;
};
type DatumRoomViewStats = {
    display_long: string;
    display_long_anchor: string;
    display_middle: string;
    display_middle_anchor: string;
    display_short: string;
    display_short_anchor: string;
    display_type: number;
    display_value: number;
    display_version: number;
    incremental: boolean;
    is_hidden: boolean;
    [property: string]: any;
};
type SceneTypeInfo = {
    commentary_type: boolean;
    is_desire_room: number;
    is_lasted_goods_room: number;
    is_life: boolean;
    is_protected_room: number;
    is_sub_orientation_vertical_room: number;
    is_union_live_room: boolean;
    [property: string]: any;
};
type ShortTouchAreaConfig = {
    elements: Elements;
    forbidden_types_map: {
        [key: string]: any;
    };
    strategy_feat_whitelist: string[];
    temp_state_condition_map: TempStateConditionMap;
    temp_state_global_condition: TempStateGlobalCondition;
    temp_state_strategy: TempStateStrategy;
    [property: string]: any;
};
type Elements = {
    1: Elements1;
    10: The10;
    12: The12;
    2: Elements2;
    22: The22;
    27: The27;
    3: Elements3;
    30: The30;
    4: Elements4;
    5: Elements5;
    6: Elements6;
    7: Elements7;
    8: Elements8;
    9: The9;
    [property: string]: any;
};
type Elements1 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type The10 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type The12 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements2 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type The22 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type The27 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements3 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type The30 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements4 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements5 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements6 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements7 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type Elements8 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type The9 = {
    priority: number;
    type: number;
    [property: string]: any;
};
type TempStateConditionMap = {
    1: TempStateConditionMap1;
    2: TempStateConditionMap2;
    3: TempStateConditionMap3;
    4: TempStateConditionMap4;
    5: TempStateConditionMap5;
    6: TempStateConditionMap6;
    7: TempStateConditionMap7;
    [property: string]: any;
};
type TempStateConditionMap1 = {
    minimum_gap: number;
    type: PurpleType;
    [property: string]: any;
};
type PurpleType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateConditionMap2 = {
    minimum_gap: number;
    type: FluffyType;
    [property: string]: any;
};
type FluffyType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateConditionMap3 = {
    minimum_gap: number;
    type: TentacledType;
    [property: string]: any;
};
type TentacledType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateConditionMap4 = {
    minimum_gap: number;
    type: StickyType;
    [property: string]: any;
};
type StickyType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateConditionMap5 = {
    minimum_gap: number;
    type: IndigoType;
    [property: string]: any;
};
type IndigoType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateConditionMap6 = {
    minimum_gap: number;
    type: IndecentType;
    [property: string]: any;
};
type IndecentType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateConditionMap7 = {
    minimum_gap: number;
    type: HilariousType;
    [property: string]: any;
};
type HilariousType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateGlobalCondition = {
    allow_count: number;
    duration_gap: number;
    ignore_strategy_types: number[];
    [property: string]: any;
};
type TempStateStrategy = {
    136: The136;
    141: The141;
    149: The149;
    152: The152;
    153: The153;
    159: The159;
    161: The161;
    210: The210;
    306: The306;
    307: The307;
    308: The308;
    311: The311;
    312: The312;
    313: The313;
    4: TempStateStrategy4;
    7: TempStateStrategy7;
    8: TempStateStrategy8;
    97: The97;
    [property: string]: any;
};
type The136 = {
    short_touch_type: number;
    strategy_map: The136_StrategyMap;
    [property: string]: any;
};
type The136_StrategyMap = {
    1: Purple1;
    2: Purple2;
    [property: string]: any;
};
type Purple1 = {
    duration: number;
    strategy_method: string;
    type: AmbitiousType;
    [property: string]: any;
};
type AmbitiousType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Purple2 = {
    duration: number;
    strategy_method: string;
    type: CunningType;
    [property: string]: any;
};
type CunningType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The141 = {
    short_touch_type: number;
    strategy_map: The141_StrategyMap;
    [property: string]: any;
};
type The141_StrategyMap = {
    1: Fluffy1;
    2: Fluffy2;
    3: Purple3;
    [property: string]: any;
};
type Fluffy1 = {
    duration: number;
    strategy_method: string;
    type: MagentaType;
    [property: string]: any;
};
type MagentaType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Fluffy2 = {
    duration: number;
    strategy_method: string;
    type: FriskyType;
    [property: string]: any;
};
type FriskyType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Purple3 = {
    duration: number;
    strategy_method: string;
    type: MischievousType;
    [property: string]: any;
};
type MischievousType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The149 = {
    short_touch_type: number;
    strategy_map: The149_StrategyMap;
    [property: string]: any;
};
type The149_StrategyMap = {
    1: Tentacled1;
    2: Tentacled2;
    [property: string]: any;
};
type Tentacled1 = {
    duration: number;
    strategy_method: string;
    type: BraggadociousType;
    [property: string]: any;
};
type BraggadociousType = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Tentacled2 = {
    duration: number;
    strategy_method: string;
    type: Type1;
    [property: string]: any;
};
type Type1 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The152 = {
    short_touch_type: number;
    strategy_map: The152_StrategyMap;
    [property: string]: any;
};
type The152_StrategyMap = {
    1: Sticky1;
    2: Sticky2;
    [property: string]: any;
};
type Sticky1 = {
    duration: number;
    strategy_method: string;
    type: Type2;
    [property: string]: any;
};
type Type2 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Sticky2 = {
    duration: number;
    strategy_method: string;
    type: Type3;
    [property: string]: any;
};
type Type3 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The153 = {
    short_touch_type: number;
    strategy_map: The153_StrategyMap;
    [property: string]: any;
};
type The153_StrategyMap = {
    1: Indigo1;
    2: Indigo2;
    4: Purple4;
    [property: string]: any;
};
type Indigo1 = {
    duration: number;
    strategy_method: string;
    type: Type4;
    [property: string]: any;
};
type Type4 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Indigo2 = {
    duration: number;
    strategy_method: string;
    type: Type5;
    [property: string]: any;
};
type Type5 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Purple4 = {
    duration: number;
    strategy_method: string;
    type: Type6;
    [property: string]: any;
};
type Type6 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The159 = {
    short_touch_type: number;
    strategy_map: The159_StrategyMap;
    [property: string]: any;
};
type The159_StrategyMap = {
    1: Indecent1;
    [property: string]: any;
};
type Indecent1 = {
    duration: number;
    strategy_method: string;
    type: Type7;
    [property: string]: any;
};
type Type7 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The161 = {
    short_touch_type: number;
    strategy_map: The161_StrategyMap;
    [property: string]: any;
};
type The161_StrategyMap = {
    1: Hilarious1;
    2: Indecent2;
    [property: string]: any;
};
type Hilarious1 = {
    duration: number;
    strategy_method: string;
    type: Type8;
    [property: string]: any;
};
type Type8 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Indecent2 = {
    duration: number;
    strategy_method: string;
    type: Type9;
    [property: string]: any;
};
type Type9 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The210 = {
    short_touch_type: number;
    strategy_map: The210_StrategyMap;
    [property: string]: any;
};
type The210_StrategyMap = {
    1: Ambitious1;
    [property: string]: any;
};
type Ambitious1 = {
    duration: number;
    strategy_method: string;
    type: Type10;
    [property: string]: any;
};
type Type10 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The306 = {
    short_touch_type: number;
    strategy_map: The306_StrategyMap;
    [property: string]: any;
};
type The306_StrategyMap = {
    3: Fluffy3;
    [property: string]: any;
};
type Fluffy3 = {
    duration: number;
    strategy_method: string;
    type: Type11;
    [property: string]: any;
};
type Type11 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The307 = {
    short_touch_type: number;
    strategy_map: The307_StrategyMap;
    [property: string]: any;
};
type The307_StrategyMap = {
    4: Fluffy4;
    [property: string]: any;
};
type Fluffy4 = {
    duration: number;
    strategy_method: string;
    type: Type12;
    [property: string]: any;
};
type Type12 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The308 = {
    short_touch_type: number;
    strategy_map: The308_StrategyMap;
    [property: string]: any;
};
type The308_StrategyMap = {
    5: Purple5;
    [property: string]: any;
};
type Purple5 = {
    duration: number;
    strategy_method: string;
    type: Type13;
    [property: string]: any;
};
type Type13 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The311 = {
    short_touch_type: number;
    strategy_map: The311_StrategyMap;
    [property: string]: any;
};
type The311_StrategyMap = {
    3: Tentacled3;
    [property: string]: any;
};
type Tentacled3 = {
    duration: number;
    strategy_method: string;
    type: Type14;
    [property: string]: any;
};
type Type14 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The312 = {
    short_touch_type: number;
    strategy_map: The312_StrategyMap;
    [property: string]: any;
};
type The312_StrategyMap = {
    1: Cunning1;
    [property: string]: any;
};
type Cunning1 = {
    duration: number;
    strategy_method: string;
    type: Type15;
    [property: string]: any;
};
type Type15 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The313 = {
    short_touch_type: number;
    strategy_map: The313_StrategyMap;
    [property: string]: any;
};
type The313_StrategyMap = {
    2: Hilarious2;
    [property: string]: any;
};
type Hilarious2 = {
    duration: number;
    strategy_method: string;
    type: Type16;
    [property: string]: any;
};
type Type16 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateStrategy4 = {
    short_touch_type: number;
    strategy_map: The4_StrategyMap;
    [property: string]: any;
};
type The4_StrategyMap = {
    1: Magenta1;
    2: Ambitious2;
    3: Sticky3;
    6: Purple6;
    7: Purple7;
    [property: string]: any;
};
type Magenta1 = {
    duration: number;
    strategy_method: string;
    type: Type17;
    [property: string]: any;
};
type Type17 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Ambitious2 = {
    duration: number;
    strategy_method: string;
    type: Type18;
    [property: string]: any;
};
type Type18 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Sticky3 = {
    duration: number;
    strategy_method: string;
    type: Type19;
    [property: string]: any;
};
type Type19 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Purple6 = {
    duration: number;
    strategy_method: string;
    type: Type20;
    [property: string]: any;
};
type Type20 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Purple7 = {
    duration: number;
    strategy_method: string;
    type: Type21;
    [property: string]: any;
};
type Type21 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateStrategy7 = {
    short_touch_type: number;
    strategy_map: The7_StrategyMap;
    [property: string]: any;
};
type The7_StrategyMap = {
    1: Frisky1;
    2: Cunning2;
    3: Indigo3;
    4: Tentacled4;
    5: Fluffy5;
    6: Fluffy6;
    [property: string]: any;
};
type Frisky1 = {
    duration: number;
    strategy_method: string;
    type: Type22;
    [property: string]: any;
};
type Type22 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Cunning2 = {
    duration: number;
    strategy_method: string;
    type: Type23;
    [property: string]: any;
};
type Type23 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Indigo3 = {
    duration: number;
    strategy_method: string;
    type: Type24;
    [property: string]: any;
};
type Type24 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Tentacled4 = {
    duration: number;
    strategy_method: string;
    type: Type25;
    [property: string]: any;
};
type Type25 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Fluffy5 = {
    duration: number;
    strategy_method: string;
    type: Type26;
    [property: string]: any;
};
type Type26 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Fluffy6 = {
    duration: number;
    strategy_method: string;
    type: Type27;
    [property: string]: any;
};
type Type27 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type TempStateStrategy8 = {
    short_touch_type: number;
    strategy_map: The8_StrategyMap;
    [property: string]: any;
};
type The8_StrategyMap = {
    1: Mischievous1;
    2: Magenta2;
    [property: string]: any;
};
type Mischievous1 = {
    duration: number;
    strategy_method: string;
    type: Type28;
    [property: string]: any;
};
type Type28 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Magenta2 = {
    duration: number;
    strategy_method: string;
    type: Type29;
    [property: string]: any;
};
type Type29 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type The97 = {
    short_touch_type: number;
    strategy_map: The97_StrategyMap;
    [property: string]: any;
};
type The97_StrategyMap = {
    1: Braggadocious1;
    2: Frisky2;
    3: Indecent3;
    5: Tentacled5;
    6: Tentacled6;
    7: Fluffy7;
    [property: string]: any;
};
type Braggadocious1 = {
    duration: number;
    strategy_method: string;
    type: Type30;
    [property: string]: any;
};
type Type30 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Frisky2 = {
    duration: number;
    strategy_method: string;
    type: Type31;
    [property: string]: any;
};
type Type31 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Indecent3 = {
    duration: number;
    strategy_method: string;
    type: Type32;
    [property: string]: any;
};
type Type32 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Tentacled5 = {
    duration: number;
    strategy_method: string;
    type: Type33;
    [property: string]: any;
};
type Type33 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Tentacled6 = {
    duration: number;
    strategy_method: string;
    type: Type34;
    [property: string]: any;
};
type Type34 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type Fluffy7 = {
    duration: number;
    strategy_method: string;
    type: Type35;
    [property: string]: any;
};
type Type35 = {
    priority: number;
    strategy_type: number;
    [property: string]: any;
};
type DatumStats = {
    like_count: number;
    total_user_desp: string;
    total_user_str: string;
    user_count_str: string;
    [property: string]: any;
};
type DatumStreamurl = {
    default_resolution: string;
    extra: PurpleExtra$1;
    flv_pull_url: PurpleFlvPullurl;
    hls_pull_url: string;
    hls_pull_url_map: PurplehlsPullurlMap;
    live_core_sdk_data: PurpleLiveCoresdkData;
    pull_datas: {
        [key: string]: any;
    };
    stream_orientation: number;
    [property: string]: any;
};
type PurpleExtra$1 = {
    anchor_interact_profile: number;
    audience_interact_profile: number;
    bframe_enable: boolean;
    bitrate_adapt_strategy: number;
    bytevc1_enable: boolean;
    default_bitrate: number;
    fps: number;
    gop_sec: number;
    h265_enable: boolean;
    hardware_encode: boolean;
    height: number;
    max_bitrate: number;
    min_bitrate: number;
    roi: boolean;
    sw_roi: boolean;
    video_profile: number;
    width: number;
    [property: string]: any;
};
type PurpleFlvPullurl = {
    FULL_HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type PurplehlsPullurlMap = {
    FULL_HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type PurpleLiveCoresdkData = {
    pull_data: PurplePullData;
    [property: string]: any;
};
type PurplePullData = {
    options: PurpleOptions;
    stream_data: string;
    [property: string]: any;
};
type PurpleOptions = {
    default_quality: PurpleDefaultQuality;
    qualities: PurpleQuality[];
    [property: string]: any;
};
type PurpleDefaultQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type PurpleQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type ToolbarData = {
    entrance_list: EntranceList[];
    extra_info: ExtraInfo;
    landscape_up_right: string[];
    max_entrance_cnt: number;
    max_entrance_cnt_landscape: number;
    more_panel: MorePanel[];
    permutation: Permutation;
    skin_resource: {
        [key: string]: any;
    };
    [property: string]: any;
};
type EntranceList = {
    component_type: number;
    data_status: number;
    extra: string;
    group_id: number;
    icon: Icon$1;
    op_type: number;
    schema_url: string;
    show_type: number;
    text: string;
    [property: string]: any;
};
type Icon$1 = {
    avg_color: string;
    flex_setting_list: string[];
    height: number;
    image_type: number;
    is_animated: boolean;
    open_web_url: string;
    text_setting_list: string[];
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type ExtraInfo = {
    game_promotion_coexist: number;
    [property: string]: any;
};
type MorePanel = {
    component_type: number;
    data_status: number;
    extra: string;
    group_id: number;
    op_type: number;
    schema_url: string;
    show_type: number;
    text: string;
    [property: string]: any;
};
type Permutation = {
    general: General;
    on_demand_component_list: string[];
    [property: string]: any;
};
type General = {
    ComponentSequence: number[];
    GroupPriority: number[];
    [property: string]: any;
};
type DataExtra = {
    digg_color: string;
    is_official_channel: boolean;
    pay_scores: string;
    signature: string;
    [property: string]: any;
};
type LoginLead = {
    is_login: boolean;
    items: {
        [key: string]: any;
    };
    level: number;
    [property: string]: any;
};
type PartitionRoadMap = {
    partition: PartitionRoadMapPartition;
    sub_partition: SubPartition;
    [property: string]: any;
};
type PartitionRoadMapPartition = {
    id_str: string;
    title: string;
    type: number;
    [property: string]: any;
};
type SubPartition = {
    partition: SubPartitionPartition;
    [property: string]: any;
};
type SubPartitionPartition = {
    id_str: string;
    title: string;
    type: number;
    [property: string]: any;
};
type SimilarRoom = {
    cover_type: number;
    is_recommend: number;
    room: Room;
    tag_name: string;
    title_type: number;
    uniq_id: string;
    web_rid: string;
    [property: string]: any;
};
type Room = {
    admin_user_ids: string[];
    admin_user_ids_str: string[];
    admin_user_open_ids: string[];
    admin_user_open_ids_str: string[];
    AnchorABMap: {
        [key: string]: any;
    };
    cover: RoomCover;
    ecom_data: RoomEcomData;
    has_commerce_goods: boolean;
    id_str: string;
    like_count: number;
    linker_map: {
        [key: string]: any;
    };
    live_room_mode: number;
    mosaic_status: number;
    mosaic_status_str: string;
    others: RoomOthers;
    owner: RoomOwner;
    owner_open_id_str: string;
    owner_user_id_str: string;
    paid_live_data: RoomPaidLiveData;
    room_view_stats: RoomRoomViewStats;
    stats: RoomStats;
    status: number;
    status_str: string;
    stream_url: RoomStreamurl;
    title: string;
    user_count_str: string;
    [property: string]: any;
};
type RoomCover = {
    url_list: string[];
    [property: string]: any;
};
type RoomEcomData = {
    instant_type: number;
    reds_show_infos: string[];
    room_cart_v2: RoomCartV2;
    [property: string]: any;
};
type RoomCartV2 = {
    show_cart: number;
    [property: string]: any;
};
type RoomOthers = {
    lvideo_item_id: number;
    metric_tracker_data_list: string[];
    mosaic_version: number;
    web_data: WebData;
    web_live_port_optimization: FluffyWebLivePortOptimization;
    [property: string]: any;
};
type WebData = {
    additional_stream_url: AdditionalStreamurl;
    [property: string]: any;
};
type AdditionalStreamurl = {
    candidate_resolution: string[];
    complete_push_urls: string[];
    default_resolution: string;
    extra: AdditionalStreamurlExtra;
    flv_pull_url: AdditionalStreamurlFlvPullurl;
    flv_pull_url_params: FlvPullurlParams;
    hls_pull_url: string;
    hls_pull_url_map: AdditionalStreamurlhlsPullurlMap;
    hls_pull_url_params: string;
    id: number;
    id_str: string;
    live_core_sdk_data: AdditionalStreamurlLiveCoresdkData;
    play: Play;
    provider: number;
    pull_datas: AdditionalStreamurlPullDatas;
    push_datas: {
        [key: string]: any;
    };
    push_stream_type: number;
    push_urls: string[];
    resolution_name: ResolutionName;
    rtmp_pull_url: string;
    rtmp_pull_url_params: string;
    rtmp_push_url: string;
    rtmp_push_url_params: string;
    stream_control_type: number;
    stream_orientation: number;
    vr_type: number;
    [property: string]: any;
};
type AdditionalStreamurlExtra = {
    anchor_interact_profile: number;
    audience_interact_profile: number;
    bframe_enable: boolean;
    bitrate_adapt_strategy: number;
    bytevc1_enable: boolean;
    default_bitrate: number;
    fps: number;
    gop_sec: number;
    h265_enable: boolean;
    hardware_encode: boolean;
    height: number;
    max_bitrate: number;
    min_bitrate: number;
    roi: boolean;
    sw_roi: boolean;
    video_profile: number;
    width: number;
    [property: string]: any;
};
type AdditionalStreamurlFlvPullurl = {
    FULL_HD1: string;
    HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type FlvPullurlParams = {
    FULL_HD1: string;
    HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type AdditionalStreamurlhlsPullurlMap = {
    FULL_HD1: string;
    HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type AdditionalStreamurlLiveCoresdkData = {
    pull_data: FluffyPullData;
    push_data: PushData;
    size: string;
    [property: string]: any;
};
type FluffyPullData = {
    codec: string;
    compensatory_data: string;
    Flv: PullDataFlv[];
    Hls: PullDataHl[];
    hls_data_unencrypted: {
        [key: string]: any;
    };
    kind: number;
    options: FluffyOptions;
    stream_data: string;
    version: number;
    [property: string]: any;
};
type PullDataFlv = {
    params: string;
    quality_name: string;
    url: string;
    [property: string]: any;
};
type PullDataHl = {
    params: string;
    quality_name: string;
    url: string;
    [property: string]: any;
};
type FluffyOptions = {
    default_quality: FluffyDefaultQuality;
    qualities: FluffyQuality[];
    vpass_default: boolean;
    [property: string]: any;
};
type FluffyDefaultQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type FluffyQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type PushData = {
    kind: number;
    pre_schedule: boolean;
    push_params: string;
    push_stream_level: number;
    resolution_params: {
        [key: string]: any;
    };
    rtmp_push_url: string;
    stream_id: number;
    stream_id_str: string;
    [property: string]: any;
};
type Play = {
    horizontal: string;
    vertical: string;
    [property: string]: any;
};
type AdditionalStreamurlPullDatas = {
    '7466360588449647386': Purple7466360588449647386;
    [property: string]: any;
};
type Purple7466360588449647386 = {
    codec: string;
    compensatory_data: string;
    extension: PurpleExtension;
    Flv: The7466360588449647386_Flv[];
    Hls: The7466360588449647386_Hl[];
    hls_data_unencrypted: {
        [key: string]: any;
    };
    kind: number;
    options: TentacledOptions;
    stream_data: string;
    version: number;
    [property: string]: any;
};
type The7466360588449647386_Flv = {
    params: string;
    quality_name: string;
    url: string;
    [property: string]: any;
};
type The7466360588449647386_Hl = {
    params: string;
    quality_name: string;
    url: string;
    [property: string]: any;
};
type PurpleExtension = {
    camera_clip: PurpleCameraClip;
    camera_clip_custom: CameraClipCustom;
    camera_hidden: number;
    camera_horizontal_hidden: number;
    camera_horizontal_position: CameraHorizontalPosition;
    camera_horizontal_type: number;
    camera_vertical_type: number;
    display_mode: number;
    game_clip: PurpleGameClip;
    game_hidden: number;
    game_room_id: string;
    layout: number;
    refresh: number;
    ts: string;
    [property: string]: any;
};
type PurpleCameraClip = {
    h: number;
    w: number;
    x: number;
    y: number;
    [property: string]: any;
};
type CameraClipCustom = {
    h: number;
    w: number;
    x: number;
    y: number;
    [property: string]: any;
};
type CameraHorizontalPosition = {
    anchor: number;
    h: number;
    w: number;
    x: number;
    y: number;
    [property: string]: any;
};
type PurpleGameClip = {
    h: number;
    w: number;
    x: number;
    y: number;
    [property: string]: any;
};
type TentacledOptions = {
    default_quality: TentacledDefaultQuality;
    qualities: TentacledQuality[];
    vpass_default: boolean;
    [property: string]: any;
};
type TentacledDefaultQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type TentacledQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type ResolutionName = {
    FULL_HD1: string;
    HD1: string;
    ORIGION: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type FluffyWebLivePortOptimization = {
    strategy_config: FluffyStrategyConfig;
    strategy_extra: string;
    [property: string]: any;
};
type FluffyStrategyConfig = {
    background: FluffyBackground;
    detail: FluffyDetail;
    tab: FluffyTab;
    [property: string]: any;
};
type FluffyBackground = {
    pause_monitor_duration: string;
    strategy_type: number;
    use_config_duration: boolean;
    [property: string]: any;
};
type FluffyDetail = {
    pause_monitor_duration: string;
    strategy_type: number;
    use_config_duration: boolean;
    [property: string]: any;
};
type FluffyTab = {
    pause_monitor_duration: string;
    strategy_type: number;
    use_config_duration: boolean;
    [property: string]: any;
};
type RoomOwner = {
    avatar_thumb: FluffyAvatarThumb$1;
    follow_info: FluffyFollowInfo;
    foreign_user: number;
    id_str: string;
    nickname: string;
    open_id_str: string;
    sec_uid: string;
    subscribe: FluffySubscribe;
    [property: string]: any;
};
type FluffyAvatarThumb$1 = {
    url_list: string[];
    [property: string]: any;
};
type FluffyFollowInfo = {
    follow_status: number;
    follow_status_str: string;
    [property: string]: any;
};
type FluffySubscribe = {
    buy_type: number;
    identity_type: number;
    is_member: boolean;
    level: number;
    open: number;
    [property: string]: any;
};
type RoomPaidLiveData = {
    anchor_right: number;
    delivery: number;
    duration: number;
    max_preview_duration: number;
    need_delivery_notice: boolean;
    paid_type: number;
    pay_ab_type: number;
    privilege_info: {
        [key: string]: any;
    };
    privilege_info_map: {
        [key: string]: any;
    };
    view_right: number;
    [property: string]: any;
};
type RoomRoomViewStats = {
    display_long: string;
    display_long_anchor: string;
    display_middle: string;
    display_middle_anchor: string;
    display_short: string;
    display_short_anchor: string;
    display_type: number;
    display_value: number;
    display_version: number;
    incremental: boolean;
    is_hidden: boolean;
    [property: string]: any;
};
type RoomStats = {
    like_count: number;
    total_user_desp: string;
    total_user_str: string;
    user_count_str: string;
    [property: string]: any;
};
type RoomStreamurl = {
    default_resolution: string;
    extra: FluffyExtra$1;
    flv_pull_url: FluffyFlvPullurl;
    hls_pull_url: string;
    hls_pull_url_map: FluffyhlsPullurlMap;
    live_core_sdk_data: FluffyLiveCoresdkData;
    pull_datas: StreamurlPullDatas;
    stream_orientation: number;
    [property: string]: any;
};
type FluffyExtra$1 = {
    anchor_interact_profile: number;
    audience_interact_profile: number;
    bframe_enable: boolean;
    bitrate_adapt_strategy: number;
    bytevc1_enable: boolean;
    default_bitrate: number;
    fps: number;
    gop_sec: number;
    h265_enable: boolean;
    hardware_encode: boolean;
    height: number;
    max_bitrate: number;
    min_bitrate: number;
    roi: boolean;
    sw_roi: boolean;
    video_profile: number;
    width: number;
    [property: string]: any;
};
type FluffyFlvPullurl = {
    FULL_HD1: string;
    HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type FluffyhlsPullurlMap = {
    FULL_HD1: string;
    HD1: string;
    SD1: string;
    SD2: string;
    [property: string]: any;
};
type FluffyLiveCoresdkData = {
    pull_data: TentacledPullData;
    [property: string]: any;
};
type TentacledPullData = {
    options: StickyOptions;
    stream_data: string;
    [property: string]: any;
};
type StickyOptions = {
    default_quality: StickyDefaultQuality;
    qualities: string[];
    [property: string]: any;
};
type StickyDefaultQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type StreamurlPullDatas = {
    '7466360588449647386': Fluffy7466360588449647386;
    [property: string]: any;
};
type Fluffy7466360588449647386 = {
    extension: FluffyExtension;
    options: IndigoOptions;
    stream_data: string;
    [property: string]: any;
};
type FluffyExtension = {
    camera_clip: FluffyCameraClip;
    camera_hidden: number;
    display_mode: number;
    game_clip: FluffyGameClip;
    game_hidden: number;
    game_room_id: string;
    refresh: number;
    ts: string;
    [property: string]: any;
};
type FluffyCameraClip = {
    h: number;
    w: number;
    x: number;
    y: number;
    [property: string]: any;
};
type FluffyGameClip = {
    h: number;
    w: number;
    x: number;
    y: number;
    [property: string]: any;
};
type IndigoOptions = {
    default_quality: IndigoDefaultQuality;
    qualities: StickyQuality[];
    [property: string]: any;
};
type IndigoDefaultQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type StickyQuality = {
    additional_content: string;
    disable: number;
    fps: number;
    level: number;
    name: string;
    resolution: string;
    sdk_key: string;
    v_bit_rate: number;
    v_codec: string;
    [property: string]: any;
};
type User = {
    avatar_thumb: UserAvatarThumb;
    follow_info: UserFollowInfo;
    foreign_user: number;
    id_str: string;
    nickname: string;
    open_id_str: string;
    sec_uid: string;
    [property: string]: any;
};
type UserAvatarThumb = {
    url_list: string[];
    [property: string]: any;
};
type UserFollowInfo = {
    follow_status: number;
    follow_status_str: string;
    [property: string]: any;
};
type WebStreamurl = {
    default_resolution: string;
    flv_pull_url: {
        [key: string]: any;
    };
    hls_pull_url: string;
    hls_pull_url_map: {
        [key: string]: any;
    };
    pull_datas: {
        [key: string]: any;
    };
    stream_orientation: number;
    [property: string]: any;
};
type UserLiveVideosExtra = {
    now: number;
    [property: string]: any;
};

type DyUserPostVideos = {
    aweme_list: AwemeList[];
    has_more: number;
    log_pb: LogPb$2;
    max_cursor: number;
    min_cursor: number;
    post_serial: number;
    replace_series_cover: number;
    request_item_cursor: number;
    status_code: number;
    time_list: string[];
    [property: string]: any;
};
type AwemeList = {
    activity_video_type: number;
    ad_aweme_source?: number;
    anchor_info: AnchorInfo;
    anchors: null;
    authentication_token: string;
    author: Author$2;
    author_mask_tag: number;
    author_user_id: number;
    aweme_control: AwemeControl$1;
    aweme_id: string;
    aweme_listen_struct: AwemeListenStruct$1;
    aweme_type: number;
    aweme_type_tags: string;
    boost_status: number;
    can_cache_to_local: boolean;
    caption: string;
    challenge_position: null;
    chapter_bar_color: null;
    chapter_list: null;
    collect_stat: number;
    collection_corner_mark: number;
    comment_gid: number;
    comment_list: null;
    comment_permission_info: CommentPermissionInfo$1;
    commerce_config_data: null;
    component_control: ComponentControl$1;
    component_info_v2: string;
    cooperation_info?: CooperationInfo;
    cover_labels: null;
    create_scale_type: null;
    create_time: number;
    danmaku_control: DanmakuControl$1;
    desc: string;
    disable_relation_bar: number;
    dislike_dimension_list: null;
    dislike_dimension_list_v2: null;
    distribute_circle: DistributeCircle$1;
    duet_aggregate_in_music_tab: boolean;
    duration: number;
    enable_comment_sticker_rec: boolean;
    entertainment_product_info: EntertainmentProductInfo$1;
    feed_comment_config: FeedCommentConfig$1;
    flash_mob_trends: number;
    friend_interaction: number;
    friend_recommend_info: {
        [key: string]: any;
    };
    game_tag_info: GameTagInfo$1;
    geofencing: string[];
    geofencing_regions: null;
    group_id: string;
    guide_btn_type: number;
    horizontal_type: number;
    hot_list: HotList;
    hybrid_label: null;
    image_album_music_info: ImageAlbumMusicInfo$1;
    image_comment: {
        [key: string]: any;
    };
    image_crop_ctrl: number;
    image_infos: null;
    image_list: null;
    images: null;
    img_bitrate: null;
    impression_data: ImpressionData$1;
    interaction_stickers: null;
    is_24_story: number;
    is_ads: boolean;
    is_collects_selected: number;
    is_duet_sing: boolean;
    is_image_beat: boolean;
    is_life_item: boolean;
    is_share_post: boolean;
    is_story: number;
    is_top: number;
    is_use_music: boolean;
    item_title: string;
    item_warn_notification: ItemWarnNotification$1;
    jump_tab_info_list: null;
    label_top_text: null;
    libfinsert_task_id: string;
    long_video: null;
    mark_largely_following: boolean;
    media_type: number;
    music: Music$1;
    mv_info: null;
    nickname_position: null;
    origin_comment_ids: null;
    origin_duet_resource_uri: string;
    origin_text_extra: null;
    original: number;
    original_anchor_type: number;
    original_images: null;
    packed_clips: null;
    personal_page_botton_diagnose_style: number;
    photo_search_entrance: PhotoSearchEntrance$1;
    play_progress: PlayProgress$1;
    position: null;
    prevent_download: boolean;
    promotions: string[];
    publish_plus_alienation: PublishPlusAlienation$1;
    ref_tts_id_list: null;
    ref_voice_modify_id_list: null;
    region: string;
    relation_labels: null;
    reply_smart_emojis: null;
    risk_infos: RiskInfos$1;
    series_paid_info: SeriesPaidInfo$1;
    share_info: AwemeListShareInfo;
    share_url: string;
    shoot_way: string;
    show_follow_button: {
        [key: string]: any;
    };
    slides_music_beats: null;
    social_tag_list: null;
    standard_bar_info_list: null;
    star_atlas_info: StarAtlasInfo;
    statistics: Statistics$1;
    status: Status$1;
    suggest_words: SuggestWords$1;
    text_extra: TextExtra[];
    trends_infos: null;
    tts_id_list: null;
    uniqid_position: null;
    user_digged: number;
    user_recommend_status: number;
    video: Video$3;
    video_control: VideoControl$1;
    video_game_data_channel_config: {
        [key: string]: any;
    };
    video_labels: null;
    video_reply_info?: VideoReplyInfo;
    video_share_edit_status: number;
    video_tag: VideoTag$1[];
    video_text: null;
    visual_search_info: VisualSearchInfo$1;
    voice_modify_id_list: null;
    vtag_search: VtagSearch$1;
    xigua_base_info: XiguaBaseInfo$1;
    yumme_recreason: null;
    [property: string]: any;
};
type AnchorInfo = {
    content: string;
    extra: string;
    icon: Icon;
    id: string;
    log_extra: string;
    mp_url?: string;
    open_url: string;
    style_info: StyleInfo;
    title: string;
    title_tag: string;
    type: number;
    web_url?: string;
    [property: string]: any;
};
type Icon = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type StyleInfo = {
    default_icon: string;
    extra: string;
    scene_icon: string;
    [property: string]: any;
};
type Author$2 = {
    account_cert_info: string;
    avatar_schema_list: null;
    avatar_thumb: AuthorAvatarThumb$1;
    ban_user_functions: null;
    batch_unfollow_contain_tabs: null;
    batch_unfollow_relation_desc: null;
    can_set_geofencing: null;
    card_entries: null;
    card_entries_not_display: null;
    card_sort_priority: null;
    cf_list: null;
    contrail_list: null;
    cover_url: Coverurl$1[];
    creator_tag_list: null;
    custom_verify: string;
    data_label_list: null;
    display_info: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    familiar_visitor_user: null;
    follow_status: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    homepage_bottom_toast: null;
    im_role_ids: null;
    interest_tags: null;
    is_ad_fake: boolean;
    link_item_list: null;
    need_points: null;
    nickname: string;
    not_seen_item_id_list: null;
    not_seen_item_id_list_v2: null;
    offline_info_list: null;
    personal_tag_list: null;
    prevent_download: boolean;
    private_relation_list: null;
    profile_mob_params: null;
    risk_notice_text: string;
    sec_uid: string;
    share_info: AuthorShareInfo$1;
    signature_extra: null;
    special_people_labels: null;
    text_extra: null;
    uid: string;
    user_permissions: null;
    user_tags: null;
    verification_permission_ids: null;
    white_cover_url: null;
    [property: string]: any;
};
type AuthorAvatarThumb$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverurl$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AuthorShareInfo$1 = {
    share_desc: string;
    share_desc_info: string;
    share_qrcode_url: ShareQrcodeurl$1;
    share_title: string;
    share_title_myself: string;
    share_title_other: string;
    share_url: string;
    share_weibo_desc: string;
    [property: string]: any;
};
type ShareQrcodeurl$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AwemeControl$1 = {
    can_comment: boolean;
    can_forward: boolean;
    can_share: boolean;
    can_show_comment: boolean;
    [property: string]: any;
};
type AwemeListenStruct$1 = {
    trace_info: string;
    [property: string]: any;
};
type CommentPermissionInfo$1 = {
    can_comment: boolean;
    comment_permission_status: number;
    item_detail_entry: boolean;
    press_entry: boolean;
    toast_guide: boolean;
    [property: string]: any;
};
type ComponentControl$1 = {
    data_source_url: string;
    [property: string]: any;
};
type CooperationInfo = {
    accepted_nums: number;
    co_creator_nums: number;
    co_creators: CoCreator[];
    cursor: number;
    extra: string;
    tag: string;
    [property: string]: any;
};
type CoCreator = {
    avatar_thumb: CoCreatorAvatarThumb;
    custom_verify: string;
    enterprise_verify_reason: string;
    extra: string;
    follow_status: number;
    follower_count: number;
    follower_status: number;
    index: number;
    invite_status: number;
    nickname: string;
    role_id: number;
    role_title: string;
    sec_uid: string;
    uid: string;
    [property: string]: any;
};
type CoCreatorAvatarThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DanmakuControl$1 = {
    activities: Activity$2[];
    danmaku_cnt: number;
    enable_danmaku: boolean;
    is_post_denied: boolean;
    pass_through_params: string;
    post_denied_reason: string;
    post_privilege_level: number;
    skip_danmaku: boolean;
    smart_mode_decision: number;
    [property: string]: any;
};
type Activity$2 = {
    id: number;
    type: number;
    [property: string]: any;
};
type DistributeCircle$1 = {
    campus_block_interaction: boolean;
    distribute_type: number;
    is_campus: boolean;
    [property: string]: any;
};
type EntertainmentProductInfo$1 = {
    market_info: MarketInfo$1;
    sub_title: null;
    [property: string]: any;
};
type MarketInfo$1 = {
    limit_free: LimitFree$1;
    marketing_tag: null;
    [property: string]: any;
};
type LimitFree$1 = {
    in_free: boolean;
    [property: string]: any;
};
type FeedCommentConfig$1 = {
    author_audit_status: number;
    input_config_text: string;
    [property: string]: any;
};
type GameTagInfo$1 = {
    is_game: boolean;
    [property: string]: any;
};
type HotList = {
    extra: string;
    footer: string;
    group_id: string;
    header: string;
    hot_score: number;
    i18n_title: string;
    image_url: string;
    pattern_type: number;
    rank: number;
    schema: string;
    sentence: string;
    sentence_id: number;
    title: string;
    type: number;
    view_count: number;
    [property: string]: any;
};
type ImageAlbumMusicInfo$1 = {
    begin_time: number;
    end_time: number;
    volume: number;
    [property: string]: any;
};
type ImpressionData$1 = {
    group_id_list_a: string[];
    group_id_list_b: string[];
    group_id_list_c: string[];
    similar_id_list_a: number[] | null;
    similar_id_list_b: number[] | null;
    [property: string]: any;
};
type ItemWarnNotification$1 = {
    content: string;
    show: boolean;
    type: number;
    [property: string]: any;
};
type Music$1 = {
    album: string;
    artist_user_infos: null;
    artists: string[];
    audition_duration: number;
    author: string;
    author_deleted: boolean;
    author_position: null;
    author_status: number;
    avatar_large: AvatarLarge$1;
    avatar_medium: AvatarMedium$1;
    avatar_thumb: MusicAvatarThumb$1;
    binded_challenge_id: number;
    can_background_play: boolean;
    collect_stat: number;
    cover_hd: Coverhd$1;
    cover_large: CoverLarge$1;
    cover_medium: MusicCoverMedium;
    cover_thumb: CoverThumb$1;
    dmv_auto_show: boolean;
    dsp_status: number;
    duration: number;
    end_time: number;
    external_song_info: string[];
    extra: string;
    id: number;
    id_str: string;
    is_audio_url_with_cookie: boolean;
    is_commerce_music: boolean;
    is_del_video: boolean;
    is_matched_metadata: boolean;
    is_original: boolean;
    is_original_sound: boolean;
    is_pgc: boolean;
    is_restricted: boolean;
    is_video_self_see: boolean;
    lyric_short_position: null;
    matched_pgc_sound?: MatchedPgcSound;
    mid: string;
    music_chart_ranks: null;
    music_collect_count: number;
    music_cover_atmosphere_color_value: string;
    music_status: number;
    musician_user_infos: null;
    mute_share: boolean;
    offline_desc: string;
    owner_handle: string;
    owner_id: string;
    owner_nickname: string;
    pgc_music_type: number;
    play_url: Playurl$1;
    position: null;
    prevent_download: boolean;
    prevent_item_download_status: number;
    preview_end_time: number;
    preview_start_time: number;
    reason_type: number;
    redirect: boolean;
    schema_url: string;
    search_impr: SearchImpr$1;
    sec_uid: string;
    shoot_duration: number;
    song?: Song;
    source_platform: number;
    start_time: number;
    status: number;
    strong_beat_url?: StrongBeaturl$1;
    tag_list: null;
    title: string;
    unshelve_countries: null;
    user_count: number;
    video_duration: number;
    [property: string]: any;
};
type AvatarLarge$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarMedium$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MusicAvatarThumb$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverhd$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverLarge$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MusicCoverMedium = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverThumb$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MatchedPgcSound = {
    author: string;
    cover_medium: MatchedPgcSoundCoverMedium;
    mixed_author: string;
    mixed_title: string;
    title: string;
    [property: string]: any;
};
type MatchedPgcSoundCoverMedium = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Playurl$1 = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type SearchImpr$1 = {
    entity_id: string;
    [property: string]: any;
};
type Song = {
    artists: null;
    chorus_v3_infos: null;
    id: number;
    id_str: string;
    [property: string]: any;
};
type StrongBeaturl$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PhotoSearchEntrance$1 = {
    ecom_type: number;
    [property: string]: any;
};
type PlayProgress$1 = {
    last_modified_time: number;
    play_progress: number;
    [property: string]: any;
};
type PublishPlusAlienation$1 = {
    alienation_type: number;
    [property: string]: any;
};
type RiskInfos$1 = {
    content: string;
    risk_sink: boolean;
    type: number;
    vote: boolean;
    warn: boolean;
    [property: string]: any;
};
type SeriesPaidInfo$1 = {
    item_price: number;
    series_paid_status: number;
    [property: string]: any;
};
type AwemeListShareInfo = {
    share_link_desc: string;
    share_url: string;
    [property: string]: any;
};
type StarAtlasInfo = {
    click_track_url_list: null;
    log_extra: string;
    track_url_list: null;
    [property: string]: any;
};
type Statistics$1 = {
    admire_count: number;
    collect_count: number;
    comment_count: number;
    digg_count: number;
    play_count: number;
    share_count: number;
    [property: string]: any;
};
type Status$1 = {
    allow_share: boolean;
    in_reviewing: boolean;
    is_delete: boolean;
    is_prohibited: boolean;
    listen_video_status: number;
    part_see: number;
    private_status: number;
    review_result: ReviewResult$1;
    [property: string]: any;
};
type ReviewResult$1 = {
    review_status: number;
    [property: string]: any;
};
type SuggestWords$1 = {
    suggest_words: SuggestWord$1[];
    [property: string]: any;
};
type SuggestWord$1 = {
    hint_text: string;
    icon_url: string;
    scene: string;
    words: Word$1[];
    [property: string]: any;
};
type Word$1 = {
    info: string;
    word: string;
    word_id: string;
    [property: string]: any;
};
type TextExtra = {
    caption_end: number;
    caption_start: number;
    end: number;
    hashtag_id: string;
    hashtag_name: string;
    is_commerce: boolean;
    search_query_id: string;
    search_text: string;
    sec_uid?: string;
    start: number;
    sub_type?: number;
    type: number;
    user_id?: string;
    [property: string]: any;
};
type Video$3 = {
    animated_cover: AnimatedCover;
    audio: Audio$2;
    big_thumbs: BigThumb[];
    bit_rate: BitRate$1[];
    bit_rate_audio: BitRateAudio[] | null;
    cover: Cover$1;
    duration: number;
    dynamic_cover: DynamicCover$1;
    format: string;
    gaussian_cover: GaussianCover$1;
    height: number;
    horizontal_type: number;
    is_long_video?: number;
    is_source_HDR: number;
    meta: string;
    misc_download_addrs?: string;
    origin_cover: OriginCover$1;
    play_addr: VideoPlayAddr$1;
    play_addr_265: PlayAddr265$1;
    play_addr_h264: PlayAddrH264$1;
    ratio: string;
    raw_cover: RawCover;
    use_static_cover: boolean;
    video_model: string;
    width: number;
    [property: string]: any;
};
type AnimatedCover = {
    uri: string;
    url_list: string[];
    [property: string]: any;
};
type Audio$2 = {
    original_sound_infos: null;
    [property: string]: any;
};
type BigThumb = {
    duration: number;
    fext: string;
    img_num: number;
    img_url: string;
    img_urls: string[];
    img_x_len: number;
    img_x_size: number;
    img_y_len: number;
    img_y_size: number;
    interval: number;
    uri: string;
    uris: string[];
    [property: string]: any;
};
type BitRate$1 = {
    bit_rate: number;
    format: string;
    FPS: number;
    gear_name: string;
    HDR_bit: string;
    HDR_type: string;
    is_bytevc1: number;
    is_h265: number;
    play_addr: BitRatePlayAddr$1;
    quality_type: number;
    video_extra: string;
    [property: string]: any;
};
type BitRatePlayAddr$1 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type BitRateAudio = {
    audio_extra?: string;
    audio_meta?: AudioMeta;
    audio_quality?: number;
    [property: string]: any;
};
type AudioMeta = {
    bitrate: number;
    codec_type: string;
    encoded_type: string;
    file_hash: string;
    file_id: string;
    format: string;
    fps: number;
    logo_type: string;
    media_type: string;
    quality: string;
    quality_desc: string;
    size: number;
    sub_info: string;
    url_list: UrlList;
    [property: string]: any;
};
type UrlList = {
    backup_url: string;
    fallback_url: string;
    main_url: string;
    [property: string]: any;
};
type Cover$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DynamicCover$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type GaussianCover$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type OriginCover$1 = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoPlayAddr$1 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddr265$1 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddrH264$1 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type RawCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoControl$1 = {
    allow_douplus: boolean;
    allow_download: boolean;
    allow_duet: boolean;
    allow_dynamic_wallpaper: boolean;
    allow_music: boolean;
    allow_react: boolean;
    allow_record: boolean;
    allow_share: boolean;
    allow_stitch: boolean;
    disable_record_reason: string;
    download_ignore_visibility: boolean;
    download_info: DownloadInfo$1;
    draft_progress_bar: number;
    duet_ignore_visibility: boolean;
    duet_info: DuetInfo$1;
    prevent_download_type: number;
    share_grayed: boolean;
    share_ignore_visibility: boolean;
    share_type: number;
    show_progress_bar: number;
    timer_info: {
        [key: string]: any;
    };
    timer_status: number;
    [property: string]: any;
};
type DownloadInfo$1 = {
    level: number;
    [property: string]: any;
};
type DuetInfo$1 = {
    level: number;
    [property: string]: any;
};
type VideoReplyInfo = {
    alias_comment_id: number;
    aweme_id: number;
    comment_id: number;
    reply_user_id: number;
    [property: string]: any;
};
type VideoTag$1 = {
    level: number;
    tag_id: number;
    tag_name: string;
    [property: string]: any;
};
type VisualSearchInfo$1 = {
    is_ecom_img: boolean;
    is_high_accuracy_ecom: boolean;
    is_high_recall_ecom: boolean;
    is_show_img_entrance: boolean;
    visual_search_longpress?: number;
    [property: string]: any;
};
type VtagSearch$1 = {
    vtag_delay_ts: number;
    vtag_enable: boolean;
    [property: string]: any;
};
type XiguaBaseInfo$1 = {
    item_id: number;
    star_altar_order_id: number;
    star_altar_type: number;
    status: number;
    [property: string]: any;
};
type LogPb$2 = {
    impr_id: string;
    [property: string]: any;
};

/** 单个视频作品 */
type DyVideoWork = {
    aweme_detail: AwemeDetail;
    log_pb: LogPb$1;
    status_code: number;
    [property: string]: any;
};
type AwemeDetail = {
    activity_video_type: number;
    anchors: null;
    authentication_token: string;
    author: Author$1;
    author_mask_tag: number;
    author_user_id: number;
    aweme_control: AwemeControl;
    aweme_id: string;
    aweme_listen_struct: AwemeListenStruct;
    aweme_type: number;
    aweme_type_tags: string;
    boost_status: number;
    can_cache_to_local: boolean;
    caption: string;
    cf_recheck_ts: number;
    challenge_position: null;
    chapter_list: null;
    collect_stat: number;
    collection_corner_mark: number;
    comment_gid: number;
    comment_list: null;
    comment_permission_info: CommentPermissionInfo;
    commerce_config_data: null;
    component_control: ComponentControl;
    component_info_v2: string;
    cover_labels: null;
    create_time: number;
    danmaku_control: DanmakuControl;
    desc: string;
    disable_relation_bar: number;
    dislike_dimension_list: null;
    dislike_dimension_list_v2: null;
    distribute_circle: DistributeCircle;
    duet_aggregate_in_music_tab: boolean;
    duration: number;
    ecom_comment_atmosphere_type: number;
    enable_comment_sticker_rec: boolean;
    entertainment_product_info: EntertainmentProductInfo;
    fall_card_struct: FallCardStruct;
    feed_comment_config: FeedCommentConfig;
    flash_mob_trends: number;
    friend_interaction: number;
    friend_recommend_info: {
        [key: string]: any;
    };
    game_tag_info: GameTagInfo;
    geofencing: string[];
    geofencing_regions: null;
    group_id: string;
    guide_scene_info: {
        [key: string]: any;
    };
    hybrid_label: null;
    image_album_music_info: ImageAlbumMusicInfo;
    image_comment: {
        [key: string]: any;
    };
    image_crop_ctrl: number;
    image_infos: null;
    image_list: null;
    images: null;
    img_bitrate: null;
    impression_data: ImpressionData;
    incentive_item_type: number;
    interaction_stickers: null;
    is_24_story: number;
    is_ads: boolean;
    is_collects_selected: number;
    is_duet_sing: boolean;
    is_image_beat: boolean;
    is_life_item: boolean;
    is_share_post: boolean;
    is_story: number;
    is_top: number;
    is_use_music: boolean;
    item_title: string;
    item_warn_notification: ItemWarnNotification;
    label_top_text: null;
    libfinsert_task_id: string;
    long_video: null;
    mark_largely_following: boolean;
    media_type: number;
    music: Music;
    nickname_position: null;
    origin_comment_ids: null;
    origin_duet_resource_uri: string;
    origin_text_extra: string[];
    original: number;
    original_images: null;
    packed_clips: null;
    personal_page_botton_diagnose_style: number;
    photo_search_entrance: PhotoSearchEntrance;
    play_progress: PlayProgress;
    position: null;
    preview_title: string;
    preview_video_status: number;
    promotions: string[];
    publish_plus_alienation: PublishPlusAlienation;
    rate: number;
    region: string;
    relation_labels: null;
    risk_infos: RiskInfos;
    seo_info: {
        [key: string]: any;
    };
    series_paid_info: SeriesPaidInfo;
    share_info: AwemeDetailShareInfo;
    share_rec_extra: string;
    share_url: string;
    shoot_way: string;
    should_open_ad_report: boolean;
    show_follow_button: {
        [key: string]: any;
    };
    social_tag_list: null;
    statistics: Statistics;
    status: Status;
    suggest_words: SuggestWords;
    text_extra: string[];
    uniqid_position: null;
    user_digged: number;
    user_recommend_status: number;
    video: Video$2;
    video_control: VideoControl;
    video_game_data_channel_config: {
        [key: string]: any;
    };
    video_labels: null;
    video_share_edit_status: number;
    video_tag: VideoTag[];
    video_text: string[];
    visual_search_info: VisualSearchInfo;
    vtag_search: VtagSearch;
    xigua_base_info: XiguaBaseInfo;
    [property: string]: any;
};
type Author$1 = {
    account_cert_info: string;
    avatar_thumb: AuthorAvatarThumb;
    awemehts_greet_info: string;
    cf_list: null;
    close_friend_type: number;
    contacts_status: number;
    contrail_list: null;
    cover_url: Coverurl[];
    create_time: number;
    custom_verify: string;
    data_label_list: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    favoriting_count: number;
    follow_status: number;
    follower_count: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    following_count: number;
    im_role_ids: null;
    is_ad_fake: boolean;
    is_blocked_v2: boolean;
    is_blocking_v2: boolean;
    is_cf: number;
    live_high_value: number;
    mate_add_permission: number;
    max_follower_count: number;
    nickname: string;
    offline_info_list: null;
    personal_tag_list: null;
    prevent_download: boolean;
    risk_notice_text: string;
    sec_uid: string;
    secret: number;
    share_info: AuthorShareInfo;
    short_id: string;
    signature: string;
    signature_extra: null;
    special_follow_status: number;
    special_people_labels: null;
    status: number;
    text_extra: null;
    total_favorited: number;
    uid: string;
    unique_id: string;
    user_age: number;
    user_canceled: boolean;
    user_permissions: null;
    verification_type: number;
    [property: string]: any;
};
type AuthorAvatarThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverurl = {
    height?: number;
    uri?: string;
    url_list?: string[];
    width?: number;
    [property: string]: any;
};
type AuthorShareInfo = {
    share_desc: string;
    share_desc_info: string;
    share_qrcode_url: ShareQrcodeurl;
    share_title: string;
    share_title_myself: string;
    share_title_other: string;
    share_url: string;
    share_weibo_desc: string;
    [property: string]: any;
};
type ShareQrcodeurl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AwemeControl = {
    can_comment: boolean;
    can_forward: boolean;
    can_share: boolean;
    can_show_comment: boolean;
    [property: string]: any;
};
type AwemeListenStruct = {
    trace_info: string;
    [property: string]: any;
};
type CommentPermissionInfo = {
    can_comment: boolean;
    comment_permission_status: number;
    item_detail_entry: boolean;
    press_entry: boolean;
    toast_guide: boolean;
    [property: string]: any;
};
type ComponentControl = {
    data_source_url: string;
    [property: string]: any;
};
type DanmakuControl = {
    activities: Activity$1[];
    danmaku_cnt: number;
    enable_danmaku: boolean;
    is_post_denied: boolean;
    pass_through_params: string;
    post_denied_reason: string;
    post_privilege_level: number;
    skip_danmaku: boolean;
    smart_mode_decision: number;
    [property: string]: any;
};
type Activity$1 = {
    id?: number;
    type?: number;
    [property: string]: any;
};
type DistributeCircle = {
    campus_block_interaction: boolean;
    distribute_type: number;
    is_campus: boolean;
    [property: string]: any;
};
type EntertainmentProductInfo = {
    market_info: MarketInfo;
    [property: string]: any;
};
type MarketInfo = {
    limit_free: LimitFree;
    [property: string]: any;
};
type LimitFree = {
    in_free: boolean;
    [property: string]: any;
};
type FallCardStruct = {
    recommend_reason: string;
    recommend_reason_v2: string;
    [property: string]: any;
};
type FeedCommentConfig = {
    author_audit_status: number;
    input_config_text: string;
    [property: string]: any;
};
type GameTagInfo = {
    is_game: boolean;
    [property: string]: any;
};
type ImageAlbumMusicInfo = {
    begin_time: number;
    end_time: number;
    volume: number;
    [property: string]: any;
};
type ImpressionData = {
    group_id_list_a: string[];
    group_id_list_b: string[];
    group_id_list_c: string[];
    similar_id_list_a: null;
    similar_id_list_b: null;
    [property: string]: any;
};
type ItemWarnNotification = {
    content: string;
    show: boolean;
    type: number;
    [property: string]: any;
};
type Music = {
    album: string;
    artist_user_infos: null;
    artists: string[];
    audition_duration: number;
    author: string;
    author_deleted: boolean;
    author_position: null;
    author_status: number;
    avatar_large: AvatarLarge;
    avatar_medium: AvatarMedium;
    avatar_thumb: MusicAvatarThumb;
    binded_challenge_id: number;
    can_background_play: boolean;
    collect_stat: number;
    cover_hd: Coverhd;
    cover_large: CoverLarge;
    cover_medium: CoverMedium;
    cover_thumb: CoverThumb;
    dmv_auto_show: boolean;
    dsp_status: number;
    duration: number;
    end_time: number;
    external_song_info: string[];
    extra: string;
    id: number;
    id_str: string;
    is_audio_url_with_cookie: boolean;
    is_commerce_music: boolean;
    is_del_video: boolean;
    is_matched_metadata: boolean;
    is_original: boolean;
    is_original_sound: boolean;
    is_pgc: boolean;
    is_restricted: boolean;
    is_video_self_see: boolean;
    lyric_short_position: null;
    mid: string;
    music_chart_ranks: null;
    music_collect_count: number;
    music_cover_atmosphere_color_value: string;
    music_status: number;
    musician_user_infos: null;
    mute_share: boolean;
    offline_desc: string;
    owner_handle: string;
    owner_id: string;
    owner_nickname: string;
    pgc_music_type: number;
    play_url: Playurl;
    position: null;
    prevent_download: boolean;
    prevent_item_download_status: number;
    preview_end_time: number;
    preview_start_time: number;
    reason_type: number;
    redirect: boolean;
    schema_url: string;
    search_impr: SearchImpr;
    sec_uid: string;
    shoot_duration: number;
    source_platform: number;
    start_time: number;
    status: number;
    strong_beat_url: StrongBeaturl;
    tag_list: null;
    title: string;
    unshelve_countries: null;
    user_count: number;
    video_duration: number;
    [property: string]: any;
};
type AvatarLarge = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type AvatarMedium = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type MusicAvatarThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Coverhd = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverLarge = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverMedium = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Playurl = {
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type SearchImpr = {
    entity_id: string;
    [property: string]: any;
};
type StrongBeaturl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PhotoSearchEntrance = {
    ecom_type: number;
    [property: string]: any;
};
type PlayProgress = {
    last_modified_time: number;
    play_progress: number;
    [property: string]: any;
};
type PublishPlusAlienation = {
    alienation_type: number;
    [property: string]: any;
};
type RiskInfos = {
    content: string;
    risk_sink: boolean;
    type: number;
    vote: boolean;
    warn: boolean;
    [property: string]: any;
};
type SeriesPaidInfo = {
    item_price: number;
    series_paid_status: number;
    [property: string]: any;
};
type AwemeDetailShareInfo = {
    share_desc: string;
    share_desc_info: string;
    share_link_desc: string;
    share_url: string;
    [property: string]: any;
};
type Statistics = {
    admire_count: number;
    aweme_id: string;
    collect_count: number;
    comment_count: number;
    digg_count: number;
    play_count: number;
    share_count: number;
    [property: string]: any;
};
type Status = {
    allow_share: boolean;
    aweme_id: string;
    in_reviewing: boolean;
    is_delete: boolean;
    is_prohibited: boolean;
    listen_video_status: number;
    part_see: number;
    private_status: number;
    review_result: ReviewResult;
    [property: string]: any;
};
type ReviewResult = {
    review_status: number;
    [property: string]: any;
};
type SuggestWords = {
    suggest_words: SuggestWord[];
    [property: string]: any;
};
type SuggestWord = {
    hint_text?: string;
    icon_url?: string;
    scene?: string;
    words?: Word[];
    [property: string]: any;
};
type Word = {
    info?: string;
    word?: string;
    word_id?: string;
    [property: string]: any;
};
type Video$2 = {
    audio: {
        [key: string]: any;
    };
    big_thumbs: string[];
    bit_rate: BitRate[];
    bit_rate_audio: null;
    cdn_url_expired: number;
    cover: Cover;
    cover_original_scale: CoverOriginalScale;
    download_addr: DownloadAddr;
    download_suffix_logo_addr: DownloadSuffixLogoAddr;
    duration: number;
    dynamic_cover: DynamicCover;
    format: string;
    gaussian_cover: GaussianCover;
    has_download_suffix_logo_addr: boolean;
    has_watermark: boolean;
    height: number;
    is_h265: number;
    is_source_HDR: number;
    meta: string;
    origin_cover: OriginCover;
    play_addr: VideoPlayAddr;
    play_addr_265: PlayAddr265;
    play_addr_h264: PlayAddrH264;
    ratio: string;
    video_model: string;
    width: number;
    [property: string]: any;
};
type BitRate = {
    bit_rate: number;
    format: string;
    FPS: number;
    gear_name: string;
    HDR_bit: string;
    HDR_type: string;
    is_bytevc1: number;
    is_h265: number;
    play_addr: BitRatePlayAddr;
    quality_type: number;
    video_extra: string;
    [property: string]: any;
};
type BitRatePlayAddr = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Cover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type CoverOriginalScale = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DownloadAddr = {
    data_size: number;
    file_cs: string;
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DownloadSuffixLogoAddr = {
    data_size: number;
    file_cs: string;
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type DynamicCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type GaussianCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type OriginCover = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoPlayAddr = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddr265 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PlayAddrH264 = {
    data_size: number;
    file_cs: string;
    file_hash: string;
    height: number;
    uri: string;
    url_key: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type VideoControl = {
    allow_douplus: boolean;
    allow_download: boolean;
    allow_duet: boolean;
    allow_dynamic_wallpaper: boolean;
    allow_music: boolean;
    allow_react: boolean;
    allow_record: boolean;
    allow_share: boolean;
    allow_stitch: boolean;
    disable_record_reason: string;
    download_ignore_visibility: boolean;
    download_info: DownloadInfo;
    draft_progress_bar: number;
    duet_ignore_visibility: boolean;
    duet_info: DuetInfo;
    prevent_download_type: number;
    share_grayed: boolean;
    share_ignore_visibility: boolean;
    share_type: number;
    show_progress_bar: number;
    timer_info: {
        [key: string]: any;
    };
    timer_status: number;
    [property: string]: any;
};
type DownloadInfo = {
    level: number;
    [property: string]: any;
};
type DuetInfo = {
    level: number;
    [property: string]: any;
};
type VideoTag = {
    level: number;
    tag_id: number;
    tag_name: string;
    [property: string]: any;
};
type VisualSearchInfo = {
    is_ecom_img: boolean;
    is_high_accuracy_ecom: boolean;
    is_high_recall_ecom: boolean;
    is_show_img_entrance: boolean;
    visual_search_longpress: number;
    [property: string]: any;
};
type VtagSearch = {
    vtag_delay_ts: number;
    vtag_enable: boolean;
    [property: string]: any;
};
type XiguaBaseInfo = {
    item_id: number;
    star_altar_order_id: number;
    star_altar_type: number;
    status: number;
    [property: string]: any;
};
type LogPb$1 = {
    impr_id: string;
    [property: string]: any;
};

type DyWorkComments = {
    comment_common_data: string;
    comment_config: {
        [key: string]: any;
    };
    comments: Comment$2[];
    cursor: number;
    extra: Extra;
    fast_response_comment: FastResponseComment;
    folded_comment_count: number;
    general_comment_config: {
        [key: string]: any;
    };
    has_more: number;
    hotsoon_filtered_count: number;
    log_pb: LogPb;
    reply_style: number;
    show_management_entry_point: number;
    status_code: number;
    total: number;
    user_commented: number;
    [property: string]: any;
};
type Comment$2 = {
    aweme_id: string;
    can_share: boolean;
    cid: string;
    content_type: number;
    create_time: number;
    digg_count: number;
    enter_from: string;
    image_list: ImageList[] | null;
    ip_label: string;
    is_author_digged: boolean;
    is_first_visitor_cmt?: boolean;
    is_folded: boolean;
    is_hot: boolean;
    is_note_comment: number;
    is_user_tend_to_reply: boolean;
    item_comment_total: number;
    label_list: LabelList[] | null;
    label_text: string;
    label_type: number;
    level: number;
    reply_comment: ReplyComment[] | null;
    reply_comment_total: number;
    reply_id: string;
    reply_to_reply_id: string;
    sort_tags: string;
    status: number;
    stick_position: number;
    text: string;
    text_extra: string[];
    text_music_info: null;
    user: CommentUser;
    user_buried: boolean;
    user_digged: number;
    video_list: null;
    [property: string]: any;
};
type ImageList = {
    crop_url: Cropurl;
    download_url: Downloadurl;
    medium_url: Mediumurl;
    origin_url: Originurl;
    thumb_url: Thumburl;
    [property: string]: any;
};
type Cropurl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Downloadurl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Mediumurl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Originurl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type Thumburl = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type LabelList = {
    text?: string;
    type?: number;
    [property: string]: any;
};
type ReplyComment = {
    aweme_id: string;
    can_share: boolean;
    cid: string;
    content_type: number;
    create_time: number;
    digg_count: number;
    image_list: null;
    ip_label: string;
    is_author_digged: boolean;
    is_folded: boolean;
    is_hot: boolean;
    is_note_comment: number;
    label_list: null;
    label_text: string;
    label_type: number;
    level: number;
    reply_comment: null;
    reply_id: string;
    reply_to_reply_id: string;
    status: number;
    text: string;
    text_extra: any[];
    text_music_info: null;
    user: ReplyCommentUser;
    user_buried: boolean;
    user_digged: number;
    video_list: null;
    [property: string]: any;
};
type ReplyCommentUser = {
    ad_cover_url: null;
    avatar_schema_list: null;
    avatar_thumb: PurpleAvatarThumb;
    aweme_control: PurpleAwemeControl;
    ban_user_functions: null;
    batch_unfollow_contain_tabs: null;
    batch_unfollow_relation_desc: null;
    can_set_geofencing: null;
    card_entries: null;
    card_entries_not_display: null;
    card_sort_priority: null;
    cf_list: null;
    cha_list: null;
    close_friend_type: number;
    comment_setting: number;
    commerce_user_level: number;
    contrail_list: null;
    cover_url: null;
    creator_tag_list: null;
    custom_verify: string;
    data_label_list: null;
    disable_image_comment_saved: number;
    display_info: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    familiar_visitor_user: null;
    follow_status: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    followers_detail: null;
    geofencing: null;
    homepage_bottom_toast: null;
    im_role_ids: null;
    interest_tags: null;
    is_ad_fake: boolean;
    is_block: boolean;
    is_blocked_v2: boolean;
    is_blocking_v2: boolean;
    is_star: boolean;
    item_list: null;
    link_item_list: null;
    need_points: null;
    new_story_cover: null;
    nickname: string;
    not_seen_item_id_list: null;
    not_seen_item_id_list_v2: null;
    offline_info_list: null;
    personal_tag_list: null;
    platform_sync_info: null;
    private_relation_list: null;
    profile_mob_params: null;
    region: string;
    relative_users: null;
    sec_uid: string;
    secret: number;
    short_id: string;
    signature_extra: null;
    special_people_labels: null;
    status: number;
    text_extra: null;
    type_label: null;
    uid: string;
    unique_id: string;
    user_canceled: boolean;
    user_permissions: null;
    user_tags: null;
    verification_permission_ids: null;
    white_cover_url: null;
    [property: string]: any;
};
type PurpleAvatarThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type PurpleAwemeControl = {
    can_comment: boolean;
    can_forward: boolean;
    can_share: boolean;
    can_show_comment: boolean;
    [property: string]: any;
};
type CommentUser = {
    ad_cover_url: null;
    avatar_schema_list: null;
    avatar_thumb: FluffyAvatarThumb;
    aweme_control: FluffyAwemeControl;
    ban_user_functions: number[];
    batch_unfollow_contain_tabs: null;
    batch_unfollow_relation_desc: null;
    can_set_geofencing: null;
    card_entries: null;
    card_entries_not_display: null;
    card_sort_priority: null;
    cf_list: null;
    cha_list: null;
    close_friend_type: number;
    comment_setting: number;
    commerce_user_level: number;
    contrail_list: null;
    cover_url: null;
    creator_tag_list: null;
    custom_verify: string;
    data_label_list: null;
    disable_image_comment_saved: number;
    display_info: null;
    endorsement_info_list: null;
    enterprise_verify_reason: string;
    familiar_visitor_user: null;
    follow_status: number;
    follower_list_secondary_information_struct: null;
    follower_status: number;
    geofencing: null;
    homepage_bottom_toast: null;
    im_role_ids: null;
    interest_tags: null;
    is_ad_fake: boolean;
    is_block: boolean;
    is_blocked_v2: boolean;
    is_blocking_v2: boolean;
    is_star: boolean;
    item_list: null;
    link_item_list: null;
    need_points: null;
    new_story_cover: null;
    nickname: string;
    not_seen_item_id_list: null;
    not_seen_item_id_list_v2: null;
    offline_info_list: null;
    personal_tag_list: null;
    platform_sync_info: null;
    private_relation_list: null;
    profile_mob_params: null;
    region: string;
    relative_users: null;
    sec_uid: string;
    secret: number;
    short_id: string;
    signature_extra: null;
    special_people_labels: null;
    status: number;
    text_extra: null;
    type_label: null;
    uid: string;
    unique_id: string;
    user_canceled: boolean;
    user_permissions: null;
    user_tags: null;
    verification_permission_ids: null;
    white_cover_url: null;
    [property: string]: any;
};
type FluffyAvatarThumb = {
    height: number;
    uri: string;
    url_list: string[];
    width: number;
    [property: string]: any;
};
type FluffyAwemeControl = {
    can_comment: boolean;
    can_forward: boolean;
    can_share: boolean;
    can_show_comment: boolean;
    [property: string]: any;
};
type Extra = {
    fatal_item_ids: null;
    now: number;
    [property: string]: any;
};
type FastResponseComment = {
    constant_response_words: string[];
    timed_response_words: string[];
    [property: string]: any;
};
type LogPb = {
    impr_id: string;
    [property: string]: any;
};

type BiliAv2Bv = {
    code: number;
    data: Data$g;
    message: string;
    [property: string]: any;
};
type Data$g = {
    bvid: string;
    [property: string]: any;
};

type BiliBangumiVideoInfo = {
    code: number;
    message: string;
    result: Result$2;
    [property: string]: any;
};
type Result$2 = {
    activity: Activity;
    actors: string;
    alias: string;
    areas: Area[];
    bkg_cover: string;
    cover: string;
    delivery_fragment_video: boolean;
    enable_vt: boolean;
    episodes: ResultEpisode[];
    evaluate: string;
    freya: Freya;
    hide_ep_vv_vt_dm: number;
    icon_font: ResultIconFont;
    jp_title: string;
    link: string;
    media_id: number;
    mode: number;
    new_ep: ResultNewEp;
    payment: Payment;
    play_strategy: PlayStrategy;
    positive: Positive;
    publish: Publish;
    rating: Rating;
    record: string;
    rights: ResultRights;
    season_id: number;
    season_title: string;
    seasons: Season[];
    section: Section[];
    series: Series;
    share_copy: string;
    share_sub_title: string;
    share_url: string;
    show: Show;
    show_season_type: number;
    square_cover: string;
    staff: string;
    stat: ResultStat;
    status: number;
    styles: string[];
    subtitle: string;
    title: string;
    total: number;
    type: number;
    up_info: UpInfo;
    user_status: UserStatus;
    [property: string]: any;
};
type Activity = {
    head_bg_url: string;
    id: number;
    title: string;
    [property: string]: any;
};
type Area = {
    id?: number;
    name?: string;
    [property: string]: any;
};
type ResultEpisode = {
    aid: number;
    badge: string;
    badge_info: PurpleBadgeInfo;
    badge_type: number;
    bvid: string;
    cid: number;
    cover: string;
    dimension: PurpleDimension;
    duration: number;
    enable_vt: boolean;
    ep_id: number;
    from: string;
    id: number;
    is_view_hide: boolean;
    link: string;
    long_title: string;
    pub_time: number;
    pv: number;
    release_date: string;
    rights: PurpleRights;
    section_type: number;
    share_copy: string;
    share_url: string;
    short_link: string;
    show_title: string;
    showDrmLoginDialog: boolean;
    status: number;
    subtitle: string;
    title: string;
    vid: string;
    [property: string]: any;
};
type PurpleBadgeInfo = {
    bg_color: string;
    bg_color_night: string;
    text: string;
    [property: string]: any;
};
type PurpleDimension = {
    height: number;
    rotate: number;
    width: number;
    [property: string]: any;
};
type PurpleRights = {
    allow_demand: number;
    allow_dm: number;
    allow_download: number;
    area_limit: number;
    [property: string]: any;
};
type Freya = {
    bubble_desc: string;
    bubble_show_cnt: number;
    icon_show: number;
    [property: string]: any;
};
type ResultIconFont = {
    name: string;
    text: string;
    [property: string]: any;
};
type ResultNewEp = {
    desc: string;
    id: number;
    is_new: number;
    title: string;
    [property: string]: any;
};
type Payment = {
    discount: number;
    pay_type: PayType;
    price: string;
    promotion: string;
    tip: string;
    view_start_time: number;
    vip_discount: number;
    vip_first_promotion: string;
    vip_price: string;
    vip_promotion: string;
    [property: string]: any;
};
type PayType = {
    allow_discount: number;
    allow_pack: number;
    allow_ticket: number;
    allow_time_limit: number;
    allow_vip_discount: number;
    forbid_bb: number;
    [property: string]: any;
};
type PlayStrategy = {
    strategies: string[];
    [property: string]: any;
};
type Positive = {
    id: number;
    title: string;
    [property: string]: any;
};
type Publish = {
    is_finish: number;
    is_started: number;
    pub_time: string;
    pub_time_show: string;
    unknow_pub_date: number;
    weekday: number;
    [property: string]: any;
};
type Rating = {
    count: number;
    score: number;
    [property: string]: any;
};
type ResultRights = {
    allow_bp: number;
    allow_bp_rank: number;
    allow_download: number;
    allow_review: number;
    area_limit: number;
    ban_area_show: number;
    can_watch: number;
    copyright: string;
    forbid_pre: number;
    freya_white: number;
    is_cover_show: number;
    is_preview: number;
    only_vip_download: number;
    resource: string;
    watch_platform: number;
    [property: string]: any;
};
type Season = {
    badge?: string;
    badge_info?: SeasonBadgeInfo;
    badge_type?: number;
    cover?: string;
    enable_vt?: boolean;
    horizontal_cover_1610?: string;
    horizontal_cover_169?: string;
    icon_font?: SeasonIconFont;
    media_id?: number;
    new_ep?: SeasonNewEp;
    season_id?: number;
    season_title?: string;
    season_type?: number;
    stat?: SeasonStat;
    [property: string]: any;
};
type SeasonBadgeInfo = {
    bg_color: string;
    bg_color_night: string;
    text: string;
    [property: string]: any;
};
type SeasonIconFont = {
    name: string;
    text: string;
    [property: string]: any;
};
type SeasonNewEp = {
    cover: string;
    id: number;
    index_show: string;
    [property: string]: any;
};
type SeasonStat = {
    favorites: number;
    series_follow: number;
    views: number;
    vt: number;
    [property: string]: any;
};
type Section = {
    attr: number;
    episode_id: number;
    episode_ids: string[];
    episodes: SectionEpisode[];
    id: number;
    title: string;
    type: number;
    type2: number;
    [property: string]: any;
};
type SectionEpisode = {
    aid: number;
    badge: string;
    badge_info: FluffyBadgeInfo;
    badge_type: number;
    bvid: string;
    cid: number;
    cover: string;
    dimension: FluffyDimension;
    duration: number;
    enable_vt: boolean;
    ep_id: number;
    from: string;
    icon_font: EpisodeIconFont;
    id: number;
    is_view_hide: boolean;
    link: string;
    long_title: string;
    pub_time: number;
    pv: number;
    release_date: string;
    rights: FluffyRights;
    section_type: number;
    share_copy: string;
    share_url: string;
    short_link: string;
    show_title: string;
    showDrmLoginDialog: boolean;
    stat: EpisodeStat;
    stat_for_unity: StatForUnity;
    status: number;
    subtitle: string;
    title: string;
    vid: string;
    [property: string]: any;
};
type FluffyBadgeInfo = {
    bg_color: string;
    bg_color_night: string;
    text: string;
    [property: string]: any;
};
type FluffyDimension = {
    height: number;
    rotate: number;
    width: number;
    [property: string]: any;
};
type EpisodeIconFont = {
    name: string;
    text: string;
    [property: string]: any;
};
type FluffyRights = {
    allow_demand: number;
    allow_dm: number;
    allow_download: number;
    area_limit: number;
    [property: string]: any;
};
type EpisodeStat = {
    coin: number;
    danmakus: number;
    likes: number;
    play: number;
    reply: number;
    vt: number;
    [property: string]: any;
};
type StatForUnity = {
    coin: number;
    danmaku: Danmaku;
    likes: number;
    reply: number;
    vt: Vt;
    [property: string]: any;
};
type Danmaku = {
    icon: string;
    pure_text: string;
    text: string;
    value: number;
    [property: string]: any;
};
type Vt = {
    icon: string;
    pure_text: string;
    text: string;
    value: number;
    [property: string]: any;
};
type Series = {
    display_type: number;
    series_id: number;
    series_title: string;
    [property: string]: any;
};
type Show = {
    wide_screen: number;
    [property: string]: any;
};
type ResultStat = {
    coins: number;
    danmakus: number;
    favorite: number;
    favorites: number;
    follow_text: string;
    likes: number;
    reply: number;
    share: number;
    views: number;
    vt: number;
    [property: string]: any;
};
type UpInfo = {
    avatar: string;
    avatar_subscript_url: string;
    follower: number;
    is_follow: number;
    mid: number;
    nickname_color: string;
    pendant: Pendant$3;
    theme_type: number;
    uname: string;
    verify_type: number;
    vip_label: VipLabel;
    vip_status: number;
    vip_type: number;
    [property: string]: any;
};
type Pendant$3 = {
    image: string;
    name: string;
    pid: number;
    [property: string]: any;
};
type VipLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    text: string;
    text_color: string;
    [property: string]: any;
};
type UserStatus = {
    area_limit: number;
    ban_area_show: number;
    follow: number;
    follow_status: number;
    login: number;
    pay: number;
    pay_pack_paid: number;
    progress: Progress;
    sponsor: number;
    vip_info: VipInfo;
    [property: string]: any;
};
type Progress = {
    last_ep_id: number;
    last_ep_index: string;
    last_time: number;
    [property: string]: any;
};
type VipInfo = {
    due_date: number;
    status: number;
    type: number;
    [property: string]: any;
};

/** 番剧下载地址（已登录） */
type BiliBangumiVideoPlayurlIsLogin = {
    code: number;
    message: string;
    result: Result$1;
    [property: string]: any;
};
type Result$1 = {
    accept_description: string[];
    accept_format: string;
    accept_quality: number[];
    bp: number;
    clip_info_list: string[];
    code: number;
    dash: Dash$1;
    durls: string[];
    fnval: number;
    fnver: number;
    format: string;
    from: string;
    has_paid: boolean;
    is_drm: boolean;
    is_preview: number;
    message: string;
    no_rexcode: number;
    quality: number;
    record_info: RecordInfo$1;
    result: string;
    seek_param: string;
    seek_type: string;
    status: number;
    support_formats: SupportFormat$3[];
    timelength: number;
    type: string;
    video_codecid: number;
    video_project: boolean;
    vip_status: number;
    vip_type: number;
    [property: string]: any;
};
type Dash$1 = {
    audio: Audio$1[];
    dolby: Dolby$1;
    duration: number;
    min_buffer_time: number;
    minBufferTime: number;
    video: Video$1[];
    [property: string]: any;
};
type Audio$1 = {
    backup_url: string[];
    backupUrl: string[];
    bandwidth: number;
    base_url: string;
    baseUrl: string;
    codecid: number;
    codecs: string;
    frame_rate: string;
    frameRate: string;
    height: number;
    id: number;
    md5: string;
    mime_type: string;
    mimeType: string;
    sar: string;
    segment_base: AudioSegmentBaseObject$1;
    SegmentBase: AudioSegmentBase$1;
    size: number;
    start_with_sap: number;
    startWithSAP: number;
    width: number;
    [property: string]: any;
};
type AudioSegmentBase$1 = {
    indexRange: string;
    Initialization: string;
    [property: string]: any;
};
type AudioSegmentBaseObject$1 = {
    index_range: string;
    initialization: string;
    [property: string]: any;
};
type Dolby$1 = {
    audio: string[];
    type: number;
    [property: string]: any;
};
type Video$1 = {
    backup_url: string[];
    backupUrl: string[];
    bandwidth: number;
    base_url: string;
    baseUrl: string;
    codecid: number;
    codecs: string;
    frame_rate: string;
    frameRate: string;
    height: number;
    id: number;
    md5: string;
    mime_type: string;
    mimeType: string;
    sar: string;
    segment_base: VideoSegmentBaseObject$1;
    SegmentBase: VideoSegmentBase$1;
    size: number;
    start_with_sap: number;
    startWithSAP: number;
    width: number;
    [property: string]: any;
};
type VideoSegmentBase$1 = {
    indexRange: string;
    Initialization: string;
    [property: string]: any;
};
type VideoSegmentBaseObject$1 = {
    index_range: string;
    initialization: string;
    [property: string]: any;
};
type RecordInfo$1 = {
    record: string;
    record_icon: string;
    [property: string]: any;
};
type SupportFormat$3 = {
    codecs: string[];
    description: string;
    display_desc: string;
    format: string;
    has_preview: boolean;
    need_login: boolean;
    need_vip: boolean;
    new_description: string;
    quality: number;
    sub_description: string;
    superscript: string;
    [property: string]: any;
};

type BiliBv2AV = {
    code: number;
    data: Data$f;
    message: string;
    [property: string]: any;
};
type Data$f = {
    aid: string;
    [property: string]: any;
};

type BiliDynamicCard = {
    code: number;
    data: Data$e;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$e = {
    card: DataCard;
    [property: string]: any;
};
type DataCard = {
    card: string;
    desc: Desc$1;
    display: Display;
    extend_json: string;
    [property: string]: any;
};
type Desc$1 = {
    acl: number;
    bvid: string;
    comment: number;
    dynamic_id: number;
    dynamic_id_str: string;
    inner_id: number;
    is_liked: number;
    like: number;
    orig_dy_id: number;
    orig_dy_id_str: string;
    orig_type: number;
    origin: null;
    pre_dy_id: number;
    pre_dy_id_str: string;
    previous: null;
    r_type: number;
    repost: number;
    rid: number;
    rid_str: string;
    spec_type: number;
    status: number;
    stype: number;
    timestamp: number;
    type: number;
    uid: number;
    uid_type: number;
    user_profile: UserProfile;
    view: number;
    [property: string]: any;
};
type UserProfile = {
    card: UserProfileCard;
    info: Info;
    level_info: LevelInfo$1;
    pendant: Pendant$2;
    rank: string;
    sign: string;
    vip: Vip$2;
    [property: string]: any;
};
type UserProfileCard = {
    official_verify: OfficialVerify$2;
    [property: string]: any;
};
type OfficialVerify$2 = {
    type: number;
    [property: string]: any;
};
type Info = {
    face: string;
    uid: number;
    uname: string;
    [property: string]: any;
};
type LevelInfo$1 = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: string;
    [property: string]: any;
};
type Pendant$2 = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    name: string;
    pid: number;
    [property: string]: any;
};
type Vip$2 = {
    accessStatus: number;
    avatar_subscript: number;
    avatar_subscript_url: string;
    dueRemark: string;
    label: Label$2;
    nickname_color: string;
    role: number;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type Label$2 = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    [property: string]: any;
};
type Display = {
    emoji_info: null;
    highlight: null;
    live_info: null;
    origin: null;
    relation: Relation;
    usr_action_txt: string;
    [property: string]: any;
};
type Relation = {
    is_follow: number;
    is_followed: number;
    status: number;
    [property: string]: any;
};

type BiliDynamicInfo = {
    code: number;
    data: Data$d;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$d = {
    item: Item;
    [property: string]: any;
};
type Item = {
    basic: Basic;
    id_str: string;
    modules: Modules;
    type: string;
    visible: boolean;
    [property: string]: any;
};
type Basic = {
    comment_id_str: string;
    comment_type: number;
    like_icon: LikeIcon;
    rid_str: string;
    [property: string]: any;
};
type LikeIcon = {
    action_url: string;
    end_url: string;
    id: number;
    start_url: string;
    [property: string]: any;
};
type Modules = {
    module_author: ModuleAuthor;
    module_dynamic: ModuleDynamic;
    module_more: ModuleMore$1;
    module_stat: ModuleStat$1;
    [property: string]: any;
};
type ModuleAuthor = {
    avatar: Avatar;
    decorate: Decorate;
    face: string;
    face_nft: boolean;
    following: boolean;
    jump_url: string;
    label: string;
    mid: number;
    name: string;
    official_verify: OfficialVerify$1;
    pendant: Pendant$1;
    pub_action: string;
    pub_location_text: string;
    pub_time: string;
    pub_ts: number;
    type: string;
    vip: Vip$1;
    [property: string]: any;
};
type Avatar = {
    container_size: ContainerSize;
    fallback_layers: FallbackLayers;
    layers: AvatarLayer[];
    mid: string;
    [property: string]: any;
};
type ContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type FallbackLayers = {
    is_critical_group: boolean;
    layers: FallbackLayersLayer[];
    [property: string]: any;
};
type FallbackLayersLayer = {
    general_spec: PurpleGeneralSpec$2;
    layer_config: PurpleLayerConfig$2;
    resource: PurpleResource$2;
    visible: boolean;
    [property: string]: any;
};
type PurpleGeneralSpec$2 = {
    pos_spec: PurplePosSpec$2;
    render_spec: PurpleRenderSpec$2;
    size_spec: PurpleSizeSpec$2;
    [property: string]: any;
};
type PurplePosSpec$2 = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type PurpleRenderSpec$2 = {
    opacity: number;
    [property: string]: any;
};
type PurpleSizeSpec$2 = {
    height: number;
    width: number;
    [property: string]: any;
};
type PurpleLayerConfig$2 = {
    is_critical?: boolean;
    tags: PurpleTags$2;
    [property: string]: any;
};
type PurpleTags$2 = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: PurpleGENERALCFG$2;
    ICON_LAYER: {
        [key: string]: any;
    };
    PENDENT_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type PurpleGENERALCFG$2 = {
    config_type: number;
    general_config: PurpleGeneralConfig$2;
    [property: string]: any;
};
type PurpleGeneralConfig$2 = {
    web_css_style: PurpleWebcssStyle$2;
    [property: string]: any;
};
type PurpleWebcssStyle$2 = {
    'background-color': string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type PurpleResource$2 = {
    res_image: PurpleResImage$2;
    res_type: number;
    [property: string]: any;
};
type PurpleResImage$2 = {
    image_src: PurpleImageSrc$2;
    [property: string]: any;
};
type PurpleImageSrc$2 = {
    local: number;
    placeholder?: number;
    remote?: PurpleRemote$2;
    src_type: number;
    [property: string]: any;
};
type PurpleRemote$2 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type AvatarLayer = {
    is_critical_group?: boolean;
    layers: LayerLayer[];
    [property: string]: any;
};
type LayerLayer = {
    general_spec: FluffyGeneralSpec$2;
    layer_config: FluffyLayerConfig$2;
    resource: FluffyResource$2;
    visible: boolean;
    [property: string]: any;
};
type FluffyGeneralSpec$2 = {
    pos_spec: FluffyPosSpec$2;
    render_spec: FluffyRenderSpec$2;
    size_spec: FluffySizeSpec$2;
    [property: string]: any;
};
type FluffyPosSpec$2 = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type FluffyRenderSpec$2 = {
    opacity: number;
    [property: string]: any;
};
type FluffySizeSpec$2 = {
    height: number;
    width: number;
    [property: string]: any;
};
type FluffyLayerConfig$2 = {
    is_critical?: boolean;
    tags: FluffyTags$2;
    [property: string]: any;
};
type FluffyTags$2 = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: FluffyGENERALCFG$2;
    ICON_LAYER: {
        [key: string]: any;
    };
    PENDENT_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type FluffyGENERALCFG$2 = {
    config_type: number;
    general_config: FluffyGeneralConfig$2;
    [property: string]: any;
};
type FluffyGeneralConfig$2 = {
    web_css_style: FluffyWebcssStyle$2;
    [property: string]: any;
};
type FluffyWebcssStyle$2 = {
    'background-color': string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type FluffyResource$2 = {
    res_animation?: ResAnimation;
    res_image: FluffyResImage$2;
    res_type: number;
    [property: string]: any;
};
type ResAnimation = {
    webp_src: WebpSrc;
    [property: string]: any;
};
type WebpSrc = {
    remote: WebpSrcRemote;
    src_type: number;
    [property: string]: any;
};
type WebpSrcRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyResImage$2 = {
    image_src: FluffyImageSrc$2;
    [property: string]: any;
};
type FluffyImageSrc$2 = {
    local: number;
    placeholder?: number;
    remote?: FluffyRemote$2;
    src_type: number;
    [property: string]: any;
};
type FluffyRemote$2 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type Decorate = {
    card_url: string;
    fan: Fan;
    id: number;
    jump_url: string;
    name: string;
    type: number;
    [property: string]: any;
};
type Fan = {
    color: string;
    color_format: ColorFormat;
    is_fan: boolean;
    num_prefix: string;
    num_str: string;
    number: number;
    [property: string]: any;
};
type ColorFormat = {
    colors: string[];
    end_point: string;
    gradients: number[];
    start_point: string;
    [property: string]: any;
};
type OfficialVerify$1 = {
    desc: string;
    type: number;
    [property: string]: any;
};
type Pendant$1 = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type Vip$1 = {
    avatar_subscript: number;
    avatar_subscript_url: string;
    due_date: number;
    label: Label$1;
    nickname_color: string;
    status: number;
    theme_type: number;
    type: number;
    [property: string]: any;
};
type Label$1 = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type ModuleDynamic = {
    additional: Additional;
    desc: Desc;
    major: Major;
    topic: null;
    [property: string]: any;
};
type Additional = {
    common: Common;
    type: string;
    [property: string]: any;
};
type Common = {
    button: Button;
    cover: string;
    desc1: string;
    desc2: string;
    head_text: string;
    id_str: string;
    jump_url: string;
    style: number;
    sub_type: string;
    title: string;
    [property: string]: any;
};
type Button = {
    jump_style: JumpStyle;
    jump_url: string;
    type: number;
    [property: string]: any;
};
type JumpStyle = {
    icon_url: string;
    text: string;
    [property: string]: any;
};
type Desc = {
    rich_text_nodes: RichTextNode[];
    text: string;
    [property: string]: any;
};
type RichTextNode = {
    jump_url: string;
    orig_text: string;
    text: string;
    type: string;
    [property: string]: any;
};
type Major = {
    archive: Archive$2;
    type: string;
    [property: string]: any;
};
type Archive$2 = {
    aid: string;
    badge: Badge$2;
    bvid: string;
    cover: string;
    desc: string;
    disable_preview: number;
    duration_text: string;
    jump_url: string;
    stat: Stat$2;
    title: string;
    type: number;
    [property: string]: any;
};
type Badge$2 = {
    bg_color: string;
    color: string;
    icon_url: null;
    text: string;
    [property: string]: any;
};
type Stat$2 = {
    danmaku: string;
    play: string;
    [property: string]: any;
};
type ModuleMore$1 = {
    three_point_items: ThreePointItem$1[];
    [property: string]: any;
};
type ThreePointItem$1 = {
    label?: string;
    type?: string;
    [property: string]: any;
};
type ModuleStat$1 = {
    comment: Comment$1;
    forward: Forward$1;
    like: Like$1;
    [property: string]: any;
};
type Comment$1 = {
    count: number;
    forbidden: boolean;
    [property: string]: any;
};
type Forward$1 = {
    count: number;
    forbidden: boolean;
    [property: string]: any;
};
type Like$1 = {
    count: number;
    forbidden: boolean;
    status: boolean;
    [property: string]: any;
};

type BiliEmojiList = {
    code: number;
    data: Data$c;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$c = {
    packages: Package[];
    setting: Setting;
    [property: string]: any;
};
type Package = {
    attr: number;
    emote: Emote$1[];
    flags: PackageFlags;
    id: number;
    label: null;
    meta: PackageMeta;
    mtime: number;
    package_sub_title: string;
    ref_mid: number;
    resource_type: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type Emote$1 = {
    activity: null;
    attr: number;
    flags: EmoteFlags;
    gif_url: string;
    id: number;
    meta: EmoteMeta;
    mtime: number;
    package_id: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type EmoteFlags = {
    no_access: boolean;
    unlocked: boolean;
    [property: string]: any;
};
type EmoteMeta = {
    alias: string;
    gif_url?: string;
    size: number;
    suggest: string[];
    [property: string]: any;
};
type PackageFlags = {
    added: boolean;
    preview?: boolean;
    [property: string]: any;
};
type PackageMeta = {
    item_id: number;
    size: number;
    [property: string]: any;
};
type Setting = {
    attr: number;
    focus_pkg_id: number;
    recent_limit: number;
    schema: string;
    [property: string]: any;
};

type BiliLiveRoomDef = {
    code: number;
    data: Data$b;
    message: string;
    msg: string;
    [property: string]: any;
};
type Data$b = {
    encrypted: boolean;
    hidden_till: number;
    is_hidden: boolean;
    is_locked: boolean;
    is_portrait: boolean;
    is_sp: number;
    live_status: number;
    live_time: number;
    lock_till: number;
    need_p2p: number;
    pwd_verified: boolean;
    room_id: number;
    room_shield: number;
    short_id: number;
    special_type: number;
    uid: number;
    [property: string]: any;
};

type BiliLiveRoomDetail = {
    code: number;
    data: Data$a;
    message: string;
    msg: string;
    [property: string]: any;
};
type Data$a = {
    allow_change_area_time: number;
    allow_upload_cover_time: number;
    area_id: number;
    area_name: string;
    area_pendants: string;
    attention: number;
    background: string;
    battle_id: number;
    description: string;
    hot_words: string[];
    hot_words_status: number;
    is_anchor: number;
    is_portrait: boolean;
    is_strict_room: boolean;
    keyframe: string;
    live_status: number;
    live_time: string;
    new_pendants: NewPendants;
    old_area_id: number;
    online: number;
    parent_area_id: number;
    parent_area_name: string;
    pendants: string;
    pk_id: number;
    pk_status: number;
    room_id: number;
    room_silent_level: number;
    room_silent_second: number;
    room_silent_type: string;
    short_id: number;
    studio_info: StudioInfo;
    tags: string;
    title: string;
    uid: number;
    up_session: string;
    user_cover: string;
    verify: string;
    [property: string]: any;
};
type NewPendants = {
    badge: Badge$1;
    frame: Frame;
    mobile_badge: null;
    mobile_frame: MobileFrame;
    [property: string]: any;
};
type Badge$1 = {
    desc: string;
    name: string;
    position: number;
    value: string;
    [property: string]: any;
};
type Frame = {
    area: number;
    area_old: number;
    bg_color: string;
    bg_pic: string;
    desc: string;
    name: string;
    position: number;
    use_old_area: boolean;
    value: string;
    [property: string]: any;
};
type MobileFrame = {
    area: number;
    area_old: number;
    bg_color: string;
    bg_pic: string;
    desc: string;
    name: string;
    position: number;
    use_old_area: boolean;
    value: string;
    [property: string]: any;
};
type StudioInfo = {
    master_list: string[];
    status: number;
    [property: string]: any;
};

type BiliCheckQrcode = {
    code: number;
    data: PurpleData;
    message: string;
    [property: string]: any;
};
type PurpleData = {
    data: FluffyData;
    headers: AxiosResponse['headers'];
    [property: string]: any;
};
type FluffyData = {
    code: number;
    message: string;
    refresh_token: string;
    timestamp: number;
    url: string;
    [property: string]: any;
};

type BiliNewLoginQrcode = {
    code: number;
    data: Data$9;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$9 = {
    qrcode_key: string;
    url: string;
    [property: string]: any;
};

type BiliOneWork = {
    code: number;
    data: Data$8;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$8 = {
    aid: number;
    argue_info: ArgueInfo;
    bvid: string;
    cid: number;
    copyright: number;
    ctime: number;
    desc: string;
    desc_v2: DescV2[];
    dimension: DataDimension;
    disable_show_up_info: boolean;
    duration: number;
    dynamic: string;
    enable_vt: number;
    honor_reply: {
        [key: string]: any;
    };
    is_chargeable_season: boolean;
    is_season_display: boolean;
    is_story: boolean;
    is_story_play: number;
    is_upower_exclusive: boolean;
    is_upower_play: boolean;
    is_upower_preview: boolean;
    is_view_self: boolean;
    like_icon: string;
    need_jump_bv: boolean;
    no_cache: boolean;
    owner: Owner;
    pages: Page[];
    pic: string;
    premiere: null;
    pubdate: number;
    rights: Rights;
    stat: Stat$1;
    state: number;
    subtitle: Subtitle;
    teenage_mode: number;
    tid: number;
    tid_v2: number;
    title: string;
    tname: string;
    tname_v2: string;
    user_garb: UserGarb;
    videos: number;
    vt_display: string;
    [property: string]: any;
};
type ArgueInfo = {
    argue_link: string;
    argue_msg: string;
    argue_type: number;
    [property: string]: any;
};
type DescV2 = {
    biz_id?: number;
    raw_text?: string;
    type?: number;
    [property: string]: any;
};
type DataDimension = {
    height: number;
    rotate: number;
    width: number;
    [property: string]: any;
};
type Owner = {
    face: string;
    mid: number;
    name: string;
    [property: string]: any;
};
type Page = {
    cid?: number;
    dimension?: PageDimension;
    duration?: number;
    first_frame?: string;
    from?: string;
    page?: number;
    part?: string;
    vid?: string;
    weblink?: string;
    [property: string]: any;
};
type PageDimension = {
    height: number;
    rotate: number;
    width: number;
    [property: string]: any;
};
type Rights = {
    arc_pay: number;
    autoplay: number;
    bp: number;
    clean_mode: number;
    download: number;
    elec: number;
    free_watch: number;
    hd5: number;
    is_360: number;
    is_cooperation: number;
    is_stein_gate: number;
    movie: number;
    no_background: number;
    no_reprint: number;
    no_share: number;
    pay: number;
    ugc_pay: number;
    ugc_pay_preview: number;
    [property: string]: any;
};
type Stat$1 = {
    aid: number;
    coin: number;
    danmaku: number;
    dislike: number;
    evaluation: string;
    favorite: number;
    his_rank: number;
    like: number;
    now_rank: number;
    reply: number;
    share: number;
    view: number;
    vt: number;
    [property: string]: any;
};
type Subtitle = {
    allow_submit: boolean;
    list: string[];
    [property: string]: any;
};
type UserGarb = {
    url_image_ani_cut: string;
    [property: string]: any;
};

type BiliUserDynamic = {
    code: number;
    data: Data$7;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$7 = {
    has_more: boolean;
    items: DataItem[];
    offset: string;
    update_baseline: string;
    update_num: number;
    [property: string]: any;
};
type DataItem = {
    basic: ItemBasic;
    id_str: string;
    modules: ItemModules;
    orig: Orig;
    type: string;
    visible: boolean;
    [property: string]: any;
};
type ItemBasic = {
    comment_id_str: string;
    comment_type: number;
    like_icon: PurpleLikeIcon;
    rid_str: string;
    [property: string]: any;
};
type PurpleLikeIcon = {
    action_url: string;
    end_url: string;
    id: number;
    start_url: string;
    [property: string]: any;
};
type ItemModules = {
    module_author: PurpleModuleAuthor;
    module_dynamic: PurpleModuleDynamic;
    module_interaction: ModuleInteraction;
    module_more: ModuleMore;
    module_stat: ModuleStat;
    module_tag?: ModuleTag;
    [property: string]: any;
};
type PurpleModuleAuthor = {
    avatar: PurpleAvatar;
    decorate: PurpleDecorate;
    face: string;
    face_nft: boolean;
    following: boolean;
    jump_url: string;
    label: string;
    mid: number;
    name: string;
    official_verify: PurpleOfficialVerify$1;
    pendant: PurplePendant$1;
    pub_action: string;
    pub_location_text: string;
    pub_time: string;
    pub_ts: number;
    type: string;
    vip: PurpleVip$1;
    [property: string]: any;
};
type PurpleAvatar = {
    container_size: PurpleContainerSize$1;
    fallback_layers: PurpleFallbackLayers$1;
    layers: FluffyLayer$1[];
    mid: string;
    [property: string]: any;
};
type PurpleContainerSize$1 = {
    height: number;
    width: number;
    [property: string]: any;
};
type PurpleFallbackLayers$1 = {
    is_critical_group: boolean;
    layers: PurpleLayer$1[];
    [property: string]: any;
};
type PurpleLayer$1 = {
    general_spec: PurpleGeneralSpec$1;
    layer_config: PurpleLayerConfig$1;
    resource: PurpleResource$1;
    visible: boolean;
    [property: string]: any;
};
type PurpleGeneralSpec$1 = {
    pos_spec: PurplePosSpec$1;
    render_spec: PurpleRenderSpec$1;
    size_spec: PurpleSizeSpec$1;
    [property: string]: any;
};
type PurplePosSpec$1 = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type PurpleRenderSpec$1 = {
    opacity: number;
    [property: string]: any;
};
type PurpleSizeSpec$1 = {
    height: number;
    width: number;
    [property: string]: any;
};
type PurpleLayerConfig$1 = {
    is_critical?: boolean;
    tags: PurpleTags$1;
    [property: string]: any;
};
type PurpleTags$1 = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: PurpleGENERALCFG$1;
    ICON_LAYER: {
        [key: string]: any;
    };
    PENDENT_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type PurpleGENERALCFG$1 = {
    config_type: number;
    general_config: PurpleGeneralConfig$1;
    [property: string]: any;
};
type PurpleGeneralConfig$1 = {
    web_css_style: PurpleWebcssStyle$1;
    [property: string]: any;
};
type PurpleWebcssStyle$1 = {
    'background-color': string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type PurpleResource$1 = {
    res_image: PurpleResImage$1;
    res_type: number;
    [property: string]: any;
};
type PurpleResImage$1 = {
    image_src: PurpleImageSrc$1;
    [property: string]: any;
};
type PurpleImageSrc$1 = {
    local: number;
    placeholder?: number;
    remote?: PurpleRemote$1;
    src_type: number;
    [property: string]: any;
};
type PurpleRemote$1 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyLayer$1 = {
    is_critical_group: boolean;
    layers: TentacledLayer$1[];
    [property: string]: any;
};
type TentacledLayer$1 = {
    general_spec: FluffyGeneralSpec$1;
    layer_config: FluffyLayerConfig$1;
    resource: FluffyResource$1;
    visible: boolean;
    [property: string]: any;
};
type FluffyGeneralSpec$1 = {
    pos_spec: FluffyPosSpec$1;
    render_spec: FluffyRenderSpec$1;
    size_spec: FluffySizeSpec$1;
    [property: string]: any;
};
type FluffyPosSpec$1 = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type FluffyRenderSpec$1 = {
    opacity: number;
    [property: string]: any;
};
type FluffySizeSpec$1 = {
    height: number;
    width: number;
    [property: string]: any;
};
type FluffyLayerConfig$1 = {
    is_critical?: boolean;
    tags: FluffyTags$1;
    [property: string]: any;
};
type FluffyTags$1 = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: FluffyGENERALCFG$1;
    ICON_LAYER: {
        [key: string]: any;
    };
    PENDENT_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type FluffyGENERALCFG$1 = {
    config_type: number;
    general_config: FluffyGeneralConfig$1;
    [property: string]: any;
};
type FluffyGeneralConfig$1 = {
    web_css_style: FluffyWebcssStyle$1;
    [property: string]: any;
};
type FluffyWebcssStyle$1 = {
    'background-color': string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type FluffyResource$1 = {
    res_animation?: PurpleResAnimation;
    res_image: FluffyResImage$1;
    res_type: number;
    [property: string]: any;
};
type PurpleResAnimation = {
    webp_src: PurpleWebpSrc;
    [property: string]: any;
};
type PurpleWebpSrc = {
    remote: FluffyRemote$1;
    src_type: number;
    [property: string]: any;
};
type FluffyRemote$1 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyResImage$1 = {
    image_src: FluffyImageSrc$1;
    [property: string]: any;
};
type FluffyImageSrc$1 = {
    local: number;
    placeholder?: number;
    remote?: TentacledRemote$1;
    src_type: number;
    [property: string]: any;
};
type TentacledRemote$1 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type PurpleDecorate = {
    card_url: string;
    fan: PurpleFan;
    id: number;
    jump_url: string;
    name: string;
    type: number;
    [property: string]: any;
};
type PurpleFan = {
    color: string;
    color_format: PurpleColorFormat;
    is_fan: boolean;
    num_prefix: string;
    num_str: string;
    number: number;
    [property: string]: any;
};
type PurpleColorFormat = {
    colors: string[];
    end_point: string;
    gradients: number[];
    start_point: string;
    [property: string]: any;
};
type PurpleOfficialVerify$1 = {
    desc: string;
    type: number;
    [property: string]: any;
};
type PurplePendant$1 = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type PurpleVip$1 = {
    avatar_subscript: number;
    avatar_subscript_url: string;
    due_date: number;
    label: PurpleLabel$1;
    nickname_color: string;
    status: number;
    theme_type: number;
    type: number;
    [property: string]: any;
};
type PurpleLabel$1 = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type PurpleModuleDynamic = {
    additional: null | AdditionalAdditional;
    desc: PurpleDesc;
    major: null | MajorMajor;
    topic: null;
    [property: string]: any;
};
type AdditionalAdditional = {
    common: PurpleCommon;
    type: string;
    [property: string]: any;
};
type PurpleCommon = {
    button: PurpleButton;
    cover: string;
    desc1: string;
    desc2: string;
    head_text: string;
    id_str: string;
    jump_url: string;
    style: number;
    sub_type: string;
    title: string;
    [property: string]: any;
};
type PurpleButton = {
    jump_style: PurpleJumpStyle;
    jump_url: string;
    type: number;
    [property: string]: any;
};
type PurpleJumpStyle = {
    icon_url: string;
    text: string;
    [property: string]: any;
};
type PurpleDesc = {
    rich_text_nodes: PurpleRichTextNode[];
    text: string;
    [property: string]: any;
};
type PurpleRichTextNode = {
    jump_url: string;
    orig_text: string;
    rid: string;
    style: null;
    text: string;
    type: string;
    [property: string]: any;
};
type MajorMajor = {
    archive?: Archive$1;
    draw: PurpleDraw;
    type: string;
    [property: string]: any;
};
type Archive$1 = {
    aid: string;
    badge: Badge;
    bvid: string;
    cover: string;
    desc: string;
    disable_preview: number;
    duration_text: string;
    jump_url: string;
    stat: Stat;
    title: string;
    type: number;
    [property: string]: any;
};
type Badge = {
    bg_color: string;
    color: string;
    icon_url: null;
    text: string;
    [property: string]: any;
};
type Stat = {
    danmaku: string;
    play: string;
    [property: string]: any;
};
type PurpleDraw = {
    id: number;
    items: PurpleItem[];
    [property: string]: any;
};
type PurpleItem = {
    height: number;
    size: number;
    src: string;
    tags: any[];
    width: number;
    [property: string]: any;
};
type ModuleInteraction = {
    items: ModuleInteractionItem[];
    [property: string]: any;
};
type ModuleInteractionItem = {
    desc: ItemDesc;
    type: number;
    [property: string]: any;
};
type ItemDesc = {
    rich_text_nodes: FluffyRichTextNode[];
    text: string;
    [property: string]: any;
};
type FluffyRichTextNode = {
    emoji: Emoji;
    orig_text: string;
    rid: string;
    text: string;
    type: string;
    [property: string]: any;
};
type Emoji = {
    icon_url: string;
    size: number;
    text: string;
    type: number;
    [property: string]: any;
};
type ModuleMore = {
    three_point_items: ThreePointItem[];
    [property: string]: any;
};
type ThreePointItem = {
    label: string;
    type: string;
    [property: string]: any;
};
type ModuleStat = {
    comment: Comment;
    forward: Forward;
    like: Like;
    [property: string]: any;
};
type Comment = {
    count: number;
    forbidden: boolean;
    [property: string]: any;
};
type Forward = {
    count: number;
    forbidden: boolean;
    [property: string]: any;
};
type Like = {
    count: number;
    forbidden: boolean;
    status: boolean;
    [property: string]: any;
};
type ModuleTag = {
    text: string;
    [property: string]: any;
};
type Orig = {
    basic: OrigBasic;
    id_str: string;
    modules: OrigModules;
    type: string;
    visible: boolean;
    [property: string]: any;
};
type OrigBasic = {
    comment_id_str: string;
    comment_type: number;
    like_icon: FluffyLikeIcon;
    rid_str: string;
    [property: string]: any;
};
type FluffyLikeIcon = {
    action_url: string;
    end_url: string;
    id: number;
    start_url: string;
    [property: string]: any;
};
type OrigModules = {
    module_author: FluffyModuleAuthor;
    module_dynamic: FluffyModuleDynamic;
    [property: string]: any;
};
type FluffyModuleAuthor = {
    avatar: FluffyAvatar;
    decorate: FluffyDecorate;
    face: string;
    face_nft: boolean;
    following: boolean;
    jump_url: string;
    label: string;
    mid: number;
    name: string;
    official_verify: FluffyOfficialVerify$1;
    pendant: FluffyPendant$1;
    pub_action: string;
    pub_time: string;
    pub_ts: number;
    type: string;
    vip: FluffyVip$1;
    [property: string]: any;
};
type FluffyAvatar = {
    container_size: FluffyContainerSize$1;
    fallback_layers: FluffyFallbackLayers$1;
    layers: IndigoLayer$1[];
    mid: string;
    [property: string]: any;
};
type FluffyContainerSize$1 = {
    height: number;
    width: number;
    [property: string]: any;
};
type FluffyFallbackLayers$1 = {
    is_critical_group: boolean;
    layers: StickyLayer$1[];
    [property: string]: any;
};
type StickyLayer$1 = {
    general_spec: TentacledGeneralSpec$1;
    layer_config: TentacledLayerConfig$1;
    resource: TentacledResource$1;
    visible: boolean;
    [property: string]: any;
};
type TentacledGeneralSpec$1 = {
    pos_spec: TentacledPosSpec$1;
    render_spec: TentacledRenderSpec$1;
    size_spec: TentacledSizeSpec$1;
    [property: string]: any;
};
type TentacledPosSpec$1 = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type TentacledRenderSpec$1 = {
    opacity: number;
    [property: string]: any;
};
type TentacledSizeSpec$1 = {
    height: number;
    width: number;
    [property: string]: any;
};
type TentacledLayerConfig$1 = {
    is_critical?: boolean;
    tags: TentacledTags$1;
    [property: string]: any;
};
type TentacledTags$1 = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: TentacledGENERALCFG$1;
    ICON_LAYER: {
        [key: string]: any;
    };
    PENDENT_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type TentacledGENERALCFG$1 = {
    config_type: number;
    general_config: TentacledGeneralConfig$1;
    [property: string]: any;
};
type TentacledGeneralConfig$1 = {
    web_css_style: TentacledWebcssStyle$1;
    [property: string]: any;
};
type TentacledWebcssStyle$1 = {
    'background-color': string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type TentacledResource$1 = {
    res_image: TentacledResImage$1;
    res_type: number;
    [property: string]: any;
};
type TentacledResImage$1 = {
    image_src: TentacledImageSrc$1;
    [property: string]: any;
};
type TentacledImageSrc$1 = {
    local: number;
    placeholder?: number;
    remote?: StickyRemote$1;
    src_type: number;
    [property: string]: any;
};
type StickyRemote$1 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type IndigoLayer$1 = {
    is_critical_group: boolean;
    layers: IndecentLayer$1[];
    [property: string]: any;
};
type IndecentLayer$1 = {
    general_spec: StickyGeneralSpec$1;
    layer_config: StickyLayerConfig$1;
    resource: StickyResource$1;
    visible: boolean;
    [property: string]: any;
};
type StickyGeneralSpec$1 = {
    pos_spec: StickyPosSpec$1;
    render_spec: StickyRenderSpec$1;
    size_spec: StickySizeSpec$1;
    [property: string]: any;
};
type StickyPosSpec$1 = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type StickyRenderSpec$1 = {
    opacity: number;
    [property: string]: any;
};
type StickySizeSpec$1 = {
    height: number;
    width: number;
    [property: string]: any;
};
type StickyLayerConfig$1 = {
    is_critical?: boolean;
    tags: StickyTags$1;
    [property: string]: any;
};
type StickyTags$1 = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: StickyGENERALCFG$1;
    ICON_LAYER: {
        [key: string]: any;
    };
    PENDENT_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type StickyGENERALCFG$1 = {
    config_type: number;
    general_config: StickyGeneralConfig$1;
    [property: string]: any;
};
type StickyGeneralConfig$1 = {
    web_css_style: StickyWebcssStyle$1;
    [property: string]: any;
};
type StickyWebcssStyle$1 = {
    'background-color': string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type StickyResource$1 = {
    res_animation?: FluffyResAnimation;
    res_image: StickyResImage$1;
    res_type: number;
    [property: string]: any;
};
type FluffyResAnimation = {
    webp_src: FluffyWebpSrc;
    [property: string]: any;
};
type FluffyWebpSrc = {
    remote: IndigoRemote$1;
    src_type: number;
    [property: string]: any;
};
type IndigoRemote$1 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type StickyResImage$1 = {
    image_src: StickyImageSrc$1;
    [property: string]: any;
};
type StickyImageSrc$1 = {
    local: number;
    placeholder?: number;
    remote?: IndecentRemote$1;
    src_type: number;
    [property: string]: any;
};
type IndecentRemote$1 = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyDecorate = {
    card_url: string;
    fan: FluffyFan;
    id: number;
    jump_url: string;
    name: string;
    type: number;
    [property: string]: any;
};
type FluffyFan = {
    color: string;
    color_format: FluffyColorFormat;
    is_fan: boolean;
    num_prefix: string;
    num_str: string;
    number: number;
    [property: string]: any;
};
type FluffyColorFormat = {
    colors: string[];
    end_point: string;
    gradients: number[];
    start_point: string;
    [property: string]: any;
};
type FluffyOfficialVerify$1 = {
    desc: string;
    type: number;
    [property: string]: any;
};
type FluffyPendant$1 = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type FluffyVip$1 = {
    avatar_subscript: number;
    avatar_subscript_url: string;
    due_date: number;
    label: FluffyLabel$1;
    nickname_color: string;
    status: number;
    theme_type: number;
    type: number;
    [property: string]: any;
};
type FluffyLabel$1 = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type FluffyModuleDynamic = {
    additional: ModuleDynamicAdditional;
    desc: FluffyDesc;
    major: ModuleDynamicMajor;
    topic: null;
    [property: string]: any;
};
type ModuleDynamicAdditional = {
    common: FluffyCommon;
    type: string;
    [property: string]: any;
};
type FluffyCommon = {
    button: FluffyButton;
    cover: string;
    desc1: string;
    desc2: string;
    head_text: string;
    id_str: string;
    jump_url: string;
    style: number;
    sub_type: string;
    title: string;
    [property: string]: any;
};
type FluffyButton = {
    jump_style: FluffyJumpStyle;
    jump_url: string;
    type: number;
    [property: string]: any;
};
type FluffyJumpStyle = {
    icon_url: string;
    text: string;
    [property: string]: any;
};
type FluffyDesc = {
    rich_text_nodes: TentacledRichTextNode[];
    text: string;
    [property: string]: any;
};
type TentacledRichTextNode = {
    jump_url: string;
    orig_text: string;
    rid: string;
    text: string;
    type: string;
    [property: string]: any;
};
type ModuleDynamicMajor = {
    draw: FluffyDraw;
    type: string;
    [property: string]: any;
};
type FluffyDraw = {
    id: number;
    items: FluffyItem[];
    [property: string]: any;
};
type FluffyItem = {
    height: number;
    size: number;
    src: string;
    tags: string[];
    width: number;
    [property: string]: any;
};

type BiliUserFullView = {
    code: number;
    data: Data$6;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$6 = {
    archive: Archive;
    article: Article;
    likes: number;
    [property: string]: any;
};
type Archive = {
    enable_vt: number;
    view: number;
    vt: number;
    [property: string]: any;
};
type Article = {
    view: number;
    [property: string]: any;
};

type BiliUserProfile = {
    code: number;
    data: Data$5;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$5 = {
    archive_count: number;
    article_count: number;
    card: Card;
    follower: number;
    following: boolean;
    like_num: number;
    space: Space;
    [property: string]: any;
};
type Card = {
    approve: boolean;
    article: number;
    attention: number;
    attentions: string[];
    birthday: string;
    description: string;
    DisplayRank: string;
    face: string;
    face_nft: number;
    face_nft_type: number;
    fans: number;
    friend: number;
    is_senior_member: number;
    level_info: LevelInfo;
    mid: string;
    name: string;
    name_render: null;
    nameplate: Nameplate;
    Official: Official;
    official_verify: OfficialVerify;
    pendant: Pendant;
    place: string;
    rank: string;
    regtime: number;
    sex: string;
    sign: string;
    spacesta: number;
    vip: Vip;
    [property: string]: any;
};
type Official = {
    desc: string;
    role: number;
    title: string;
    type: number;
    [property: string]: any;
};
type LevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type Nameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type OfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type Pendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type Vip = {
    avatar_icon: AvatarIcon;
    avatar_subscript: number;
    avatar_subscript_url: string;
    due_date: number;
    label: Label;
    nickname_color: string;
    role: number;
    status: number;
    theme_type: number;
    tv_due_date: number;
    tv_vip_pay_type: number;
    tv_vip_status: number;
    type: number;
    vip_pay_type: number;
    vipStatus: number;
    vipType: number;
    [property: string]: any;
};
type AvatarIcon = {
    icon_resource: IconResource;
    icon_type: number;
    [property: string]: any;
};
type IconResource = {
    type: number;
    url: string;
    [property: string]: any;
};
type Label = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type Space = {
    l_img: string;
    s_img: string;
    [property: string]: any;
};

/** 视频下载地址（已登录） */
type BiliVideoPlayurlIsLogin = {
    code: number;
    data: Data$4;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$4 = {
    accept_description: string[];
    accept_format: string;
    accept_quality: number[];
    dash: Dash;
    format: string;
    from: string;
    high_format: null;
    last_play_cid: number;
    last_play_time: number;
    message: string;
    quality: number;
    result: string;
    seek_param: string;
    seek_type: string;
    support_formats: SupportFormat$2[];
    timelength: number;
    video_codecid: number;
    view_info: null;
    [property: string]: any;
};
type Dash = {
    audio: Audio[];
    dolby: Dolby;
    duration: number;
    flac: null;
    min_buffer_time: number;
    minBufferTime: number;
    video: Video[];
    [property: string]: any;
};
type Audio = {
    backup_url: string[];
    backupUrl: string[];
    bandwidth: number;
    base_url: string;
    baseUrl: string;
    codecid: number;
    codecs: string;
    frame_rate: string;
    frameRate: string;
    height: number;
    id: number;
    mime_type: string;
    mimeType: string;
    sar: string;
    segment_base: AudioSegmentBaseObject;
    SegmentBase: AudioSegmentBase;
    start_with_sap: number;
    startWithSap: number;
    width: number;
    [property: string]: any;
};
type AudioSegmentBase = {
    indexRange: string;
    Initialization: string;
    [property: string]: any;
};
type AudioSegmentBaseObject = {
    index_range: string;
    initialization: string;
    [property: string]: any;
};
type Dolby = {
    audio: null;
    type: number;
    [property: string]: any;
};
type Video = {
    backup_url: string[];
    backupUrl: string[];
    bandwidth: number;
    base_url: string;
    baseUrl: string;
    codecid: number;
    codecs: string;
    frame_rate: string;
    frameRate: string;
    height: number;
    id: number;
    mime_type: string;
    mimeType: string;
    sar: string;
    segment_base: VideoSegmentBaseObject;
    SegmentBase: VideoSegmentBase;
    start_with_sap: number;
    startWithSap: number;
    width: number;
    [property: string]: any;
};
type VideoSegmentBase = {
    indexRange: string;
    Initialization: string;
    [property: string]: any;
};
type VideoSegmentBaseObject = {
    index_range: string;
    initialization: string;
    [property: string]: any;
};
type SupportFormat$2 = {
    codecs: string[];
    display_desc: string;
    format: string;
    new_description: string;
    quality: number;
    superscript: string;
    [property: string]: any;
};

type BiliWorkComments = {
    code: number;
    data: DataData;
    message: string;
    ttl: number;
    [property: string]: any;
};
type DataData = {
    assist: number;
    blacklist: number;
    callbacks: {
        [key: string]: any;
    };
    cm_info: CmInfo;
    config: Config;
    control: Control;
    cursor: Cursor;
    effects: Effects;
    note: number;
    replies: DataReply[];
    top: Top;
    top_replies: TopReply[];
    upper: DataUpper;
    vote: number;
    [property: string]: any;
};
type CmInfo = {
    ads: Ads;
    [property: string]: any;
};
type Ads = {
    "4765": The4765[];
    [property: string]: any;
};
type The4765 = {
    activity_type?: number;
    ad_cb?: string;
    ad_desc?: string;
    adver_name?: string;
    agency?: string;
    area?: number;
    cm_mark?: number;
    contract_id?: string;
    creative_id?: number;
    creative_type?: number;
    epid?: number;
    id?: number;
    intro?: string;
    is_ad?: boolean;
    is_ad_loc?: boolean;
    label?: string;
    litpic?: string;
    mid?: string;
    name?: string;
    null_frame?: boolean;
    pic?: string;
    pic_main_color?: string;
    pos_num?: number;
    request_id?: string;
    server_type?: number;
    show_url?: string;
    src_id?: number;
    stime?: number;
    style?: number;
    sub_title?: string;
    title?: string;
    url?: string;
    [property: string]: any;
};
type Config = {
    read_only: boolean;
    show_up_flag: boolean;
    showtopic: number;
    [property: string]: any;
};
type Control = {
    answer_guide_android_url: string;
    answer_guide_icon_url: string;
    answer_guide_ios_url: string;
    answer_guide_text: string;
    bg_text: string;
    child_input_text: string;
    disable_jump_emote: boolean;
    empty_page: null;
    enable_charged: boolean;
    enable_cm_biz_helper: boolean;
    giveup_input_text: string;
    input_disable: boolean;
    preload_resources: null;
    root_input_text: string;
    screenshot_icon_state: number;
    show_text: string;
    show_type: number;
    upload_picture_icon_state: number;
    web_selection: boolean;
    [property: string]: any;
};
type Cursor = {
    all_count: number;
    is_begin: boolean;
    is_end: boolean;
    mode: number;
    mode_text: string;
    name: string;
    next: number;
    pagination_reply: PaginationReply;
    prev: number;
    session_id: string;
    support_mode: number[];
    [property: string]: any;
};
type PaginationReply = {
    next_offset: string;
    [property: string]: any;
};
type Effects = {
    preloading: string;
    [property: string]: any;
};
type DataReply = {
    action: number;
    assist: number;
    attr: number;
    content: PurpleContent;
    count: number;
    ctime: number;
    dialog: number;
    dialog_str: string;
    dynamic_id_str: string;
    fansgrade: number;
    folder: PurpleFolder;
    invisible: boolean;
    like: number;
    member: PurpleMember;
    mid: number;
    mid_str: string;
    note_cvid_str: string;
    oid: number;
    oid_str: string;
    parent: number;
    parent_str: string;
    rcount: number;
    replies: ReplyReply[];
    reply_control: FluffyReplyControl;
    root: number;
    root_str: string;
    rpid: number;
    rpid_str: string;
    state: number;
    track_info: string;
    type: number;
    up_action: FluffyUpAction;
    [property: string]: any;
};
type PurpleContent = {
    jump_url: {
        [key: string]: any;
    };
    max_line: number;
    members: string[];
    message: string;
    [property: string]: any;
};
type PurpleFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type PurpleMember = {
    avatar: string;
    avatar_item: PurpleAvatarItem;
    contract_desc: string;
    face_nft_new: number;
    fans_detail: null;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: PurpleLevelInfo;
    mid: string;
    nameplate: PurpleNameplate;
    nft_interaction: null;
    official_verify: PurpleOfficialVerify;
    pendant: PurplePendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    user_sailing: PurpleUserSailing;
    user_sailing_v2: {
        [key: string]: any;
    };
    vip: PurpleVip;
    [property: string]: any;
};
type PurpleAvatarItem = {
    container_size: PurpleContainerSize;
    fallback_layers: PurpleFallbackLayers;
    mid: string;
    [property: string]: any;
};
type PurpleContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type PurpleFallbackLayers = {
    is_critical_group: boolean;
    layers: PurpleLayer[];
    [property: string]: any;
};
type PurpleLayer = {
    general_spec: PurpleGeneralSpec;
    layer_config: PurpleLayerConfig;
    resource: PurpleResource;
    visible: boolean;
    [property: string]: any;
};
type PurpleGeneralSpec = {
    pos_spec: PurplePosSpec;
    render_spec: PurpleRenderSpec;
    size_spec: PurpleSizeSpec;
    [property: string]: any;
};
type PurplePosSpec = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type PurpleRenderSpec = {
    opacity: number;
    [property: string]: any;
};
type PurpleSizeSpec = {
    height: number | number;
    width: number | number;
    [property: string]: any;
};
type PurpleLayerConfig = {
    is_critical: boolean;
    tags: PurpleTags;
    [property: string]: any;
};
type PurpleTags = {
    AVATAR_LAYER: {
        [key: string]: any;
    };
    GENERAL_CFG: PurpleGENERALCFG;
    ICON_LAYER?: {
        [key: string]: any;
    };
    [property: string]: any;
};
type PurpleGENERALCFG = {
    config_type: number;
    general_config: PurpleGeneralConfig;
    [property: string]: any;
};
type PurpleGeneralConfig = {
    web_css_style: PurpleWebcssStyle;
    [property: string]: any;
};
type PurpleWebcssStyle = {
    "background-color"?: string;
    border?: string;
    borderRadius: string;
    boxSizing?: string;
    [property: string]: any;
};
type PurpleResource = {
    res_image: PurpleResImage;
    res_type: number;
    [property: string]: any;
};
type PurpleResImage = {
    image_src: PurpleImageSrc;
    [property: string]: any;
};
type PurpleImageSrc = {
    local?: number;
    placeholder: number;
    remote: PurpleRemote;
    src_type: number;
    [property: string]: any;
};
type PurpleRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type PurpleLevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type PurpleNameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type PurpleOfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type PurplePendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type PurpleUserSailing = {
    cardbg: null;
    cardbg_with_focus: null;
    pendant: null;
    [property: string]: any;
};
type PurpleVip = {
    accessStatus: number;
    avatar_subscript: number;
    dueRemark: string;
    label: PurpleLabel;
    nickname_color: string;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type PurpleLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type ReplyReply = {
    action: number;
    assist: number;
    attr: number;
    content: FluffyContent;
    count: number;
    ctime: number;
    dialog: number;
    dialog_str: string;
    dynamic_id_str: string;
    fansgrade: number;
    folder: FluffyFolder;
    invisible: boolean;
    like: number;
    member: FluffyMember;
    mid: number;
    mid_str: string;
    note_cvid_str: string;
    oid: number;
    oid_str: string;
    parent: number;
    parent_str: string;
    rcount: number;
    replies: null;
    reply_control: PurpleReplyControl;
    root: number;
    root_str: string;
    rpid: number;
    rpid_str: string;
    state: number;
    track_info: string;
    type: number;
    up_action: PurpleUpAction;
    [property: string]: any;
};
type FluffyContent = {
    emote?: Emote;
    jump_url: {
        [key: string]: any;
    };
    max_line: number;
    members: string[];
    message: string;
    [property: string]: any;
};
type Emote = {
    "[呲牙]": 呲牙;
    [property: string]: any;
};
type 呲牙 = {
    attr: number;
    id: number;
    jump_title: string;
    meta: Meta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type Meta = {
    size: number;
    suggest: string[];
    [property: string]: any;
};
type FluffyFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type FluffyMember = {
    avatar: string;
    avatar_item: FluffyAvatarItem;
    contract_desc: string;
    face_nft_new: number;
    fans_detail: null;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: FluffyLevelInfo;
    mid: string;
    nameplate: FluffyNameplate;
    nft_interaction: null;
    official_verify: FluffyOfficialVerify;
    pendant: FluffyPendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    user_sailing: FluffyUserSailing;
    user_sailing_v2: {
        [key: string]: any;
    };
    vip: FluffyVip;
    [property: string]: any;
};
type FluffyAvatarItem = {
    container_size: FluffyContainerSize;
    fallback_layers: FluffyFallbackLayers;
    mid: string;
    [property: string]: any;
};
type FluffyContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type FluffyFallbackLayers = {
    is_critical_group: boolean;
    layers: FluffyLayer[];
    [property: string]: any;
};
type FluffyLayer = {
    general_spec: FluffyGeneralSpec;
    layer_config: FluffyLayerConfig;
    resource: FluffyResource;
    visible: boolean;
    [property: string]: any;
};
type FluffyGeneralSpec = {
    pos_spec: FluffyPosSpec;
    render_spec: FluffyRenderSpec;
    size_spec: FluffySizeSpec;
    [property: string]: any;
};
type FluffyPosSpec = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type FluffyRenderSpec = {
    opacity: number;
    [property: string]: any;
};
type FluffySizeSpec = {
    height: number | number;
    width: number | number;
    [property: string]: any;
};
type FluffyLayerConfig = {
    is_critical?: boolean;
    tags: FluffyTags;
    [property: string]: any;
};
type FluffyTags = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: FluffyGENERALCFG;
    ICON_LAYER: {
        [key: string]: any;
    };
    [property: string]: any;
};
type FluffyGENERALCFG = {
    config_type: number;
    general_config: FluffyGeneralConfig;
    [property: string]: any;
};
type FluffyGeneralConfig = {
    web_css_style: FluffyWebcssStyle;
    [property: string]: any;
};
type FluffyWebcssStyle = {
    "background-color": string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type FluffyResource = {
    res_image: FluffyResImage;
    res_type: number;
    [property: string]: any;
};
type FluffyResImage = {
    image_src: FluffyImageSrc;
    [property: string]: any;
};
type FluffyImageSrc = {
    local: number;
    placeholder?: number;
    remote?: FluffyRemote;
    src_type: number;
    [property: string]: any;
};
type FluffyRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyLevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type FluffyNameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type FluffyOfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type FluffyPendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type FluffyUserSailing = {
    cardbg: null;
    cardbg_with_focus: null;
    pendant: null;
    [property: string]: any;
};
type FluffyVip = {
    accessStatus: number;
    avatar_subscript: number;
    dueRemark: string;
    label: FluffyLabel;
    nickname_color: string;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type FluffyLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type PurpleReplyControl = {
    location: string;
    max_line: number;
    time_desc: string;
    translation_switch: number;
    [property: string]: any;
};
type PurpleUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type FluffyReplyControl = {
    location: string;
    max_line: number;
    sub_reply_entry_text: string;
    sub_reply_title_text: string;
    time_desc: string;
    translation_switch: number;
    up_reply: boolean;
    [property: string]: any;
};
type FluffyUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type Top = {
    admin: null;
    upper: TopUpper;
    vote: null;
    [property: string]: any;
};
type TopUpper = {
    action: number;
    assist: number;
    attr: number;
    content: UpperContent;
    count: number;
    ctime: number;
    dialog: number;
    dialog_str: string;
    dynamic_id_str: string;
    fansgrade: number;
    folder: UpperFolder;
    invisible: boolean;
    like: number;
    member: UpperMember;
    mid: number;
    mid_str: string;
    note_cvid_str: string;
    oid: number;
    oid_str: string;
    parent: number;
    parent_str: string;
    rcount: number;
    replies: UpperReply[];
    reply_control: UpperReplyControl;
    root: number;
    root_str: string;
    rpid: number;
    rpid_str: string;
    state: number;
    track_info: string;
    type: number;
    up_action: UpperUpAction;
    [property: string]: any;
};
type UpperContent = {
    jump_url: PurpleJumpurl;
    max_line: number;
    members: string[];
    message: string;
    [property: string]: any;
};
type PurpleJumpurl = {
    "https://b23.tv/mall-31Qhv-71b88": PurplehttpsB23TvMall31Qhv71B88;
    "https://b23.tv/mall-31Qhv-72Hhp": PurplehttpsB23TvMall31Qhv72Hhp;
    [property: string]: any;
};
type PurplehttpsB23TvMall31Qhv71B88 = {
    app_name: string;
    app_package_name: string;
    app_url_schema: string;
    click_report: string;
    exposure_report: string;
    extra: PurpleExtra;
    icon_position: number;
    is_half_screen: boolean;
    match_once: boolean;
    pc_url: string;
    prefix_icon: string;
    state: number;
    title: string;
    underline: boolean;
    [property: string]: any;
};
type PurpleExtra = {
    goods_click_report: string;
    goods_cm_control: number;
    goods_exposure_report: string;
    goods_item_id: number;
    goods_show_type: number;
    is_word_search: boolean;
    [property: string]: any;
};
type PurplehttpsB23TvMall31Qhv72Hhp = {
    app_name: string;
    app_package_name: string;
    app_url_schema: string;
    click_report: string;
    exposure_report: string;
    extra: FluffyExtra;
    icon_position: number;
    is_half_screen: boolean;
    match_once: boolean;
    pc_url: string;
    prefix_icon: string;
    state: number;
    title: string;
    underline: boolean;
    [property: string]: any;
};
type FluffyExtra = {
    goods_click_report: string;
    goods_cm_control: number;
    goods_exposure_report: string;
    goods_item_id: number;
    goods_show_type: number;
    is_word_search: boolean;
    [property: string]: any;
};
type UpperFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type UpperMember = {
    avatar: string;
    avatar_item: TentacledAvatarItem;
    contract_desc: string;
    face_nft_new: number;
    fans_detail: null;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: TentacledLevelInfo;
    mid: string;
    nameplate: TentacledNameplate;
    nft_interaction: null;
    official_verify: TentacledOfficialVerify;
    pendant: TentacledPendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    user_sailing: TentacledUserSailing;
    user_sailing_v2: {
        [key: string]: any;
    };
    vip: TentacledVip;
    [property: string]: any;
};
type TentacledAvatarItem = {
    container_size: TentacledContainerSize;
    fallback_layers: TentacledFallbackLayers;
    mid: string;
    [property: string]: any;
};
type TentacledContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type TentacledFallbackLayers = {
    is_critical_group: boolean;
    layers: TentacledLayer[];
    [property: string]: any;
};
type TentacledLayer = {
    general_spec: TentacledGeneralSpec;
    layer_config: TentacledLayerConfig;
    resource: TentacledResource;
    visible: boolean;
    [property: string]: any;
};
type TentacledGeneralSpec = {
    pos_spec: TentacledPosSpec;
    render_spec: TentacledRenderSpec;
    size_spec: TentacledSizeSpec;
    [property: string]: any;
};
type TentacledPosSpec = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type TentacledRenderSpec = {
    opacity: number;
    [property: string]: any;
};
type TentacledSizeSpec = {
    height: number | number;
    width: number | number;
    [property: string]: any;
};
type TentacledLayerConfig = {
    is_critical?: boolean;
    tags: TentacledTags;
    [property: string]: any;
};
type TentacledTags = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: TentacledGENERALCFG;
    ICON_LAYER: {
        [key: string]: any;
    };
    [property: string]: any;
};
type TentacledGENERALCFG = {
    config_type: number;
    general_config: TentacledGeneralConfig;
    [property: string]: any;
};
type TentacledGeneralConfig = {
    web_css_style: TentacledWebcssStyle;
    [property: string]: any;
};
type TentacledWebcssStyle = {
    "background-color": string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type TentacledResource = {
    res_image: TentacledResImage;
    res_type: number;
    [property: string]: any;
};
type TentacledResImage = {
    image_src: TentacledImageSrc;
    [property: string]: any;
};
type TentacledImageSrc = {
    local: number;
    placeholder?: number;
    remote?: TentacledRemote;
    src_type: number;
    [property: string]: any;
};
type TentacledRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type TentacledLevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type TentacledNameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type TentacledOfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type TentacledPendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type TentacledUserSailing = {
    cardbg: null;
    cardbg_with_focus: null;
    pendant: null;
    [property: string]: any;
};
type TentacledVip = {
    accessStatus: number;
    avatar_subscript: number;
    dueRemark: string;
    label: TentacledLabel;
    nickname_color: string;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type TentacledLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type UpperReply = {
    action?: number;
    assist?: number;
    attr?: number;
    content?: TentacledContent;
    count?: number;
    ctime?: number;
    dialog?: number;
    dialog_str?: string;
    dynamic_id_str?: string;
    fansgrade?: number;
    folder?: TentacledFolder;
    invisible?: boolean;
    like?: number;
    member?: TentacledMember;
    mid?: number;
    mid_str?: string;
    note_cvid_str?: string;
    oid?: number;
    oid_str?: string;
    parent?: number;
    parent_str?: string;
    rcount?: number;
    replies?: null;
    reply_control?: TentacledReplyControl;
    root?: number;
    root_str?: string;
    rpid?: number;
    rpid_str?: string;
    state?: number;
    track_info?: string;
    type?: number;
    up_action?: TentacledUpAction;
    [property: string]: any;
};
type TentacledContent = {
    jump_url: {
        [key: string]: any;
    };
    max_line: number;
    members: string[];
    message: string;
    [property: string]: any;
};
type TentacledFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type TentacledMember = {
    avatar: string;
    avatar_item: StickyAvatarItem;
    contract_desc: string;
    face_nft_new: number;
    fans_detail: null;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: StickyLevelInfo;
    mid: string;
    nameplate: StickyNameplate;
    nft_interaction: null;
    official_verify: StickyOfficialVerify;
    pendant: StickyPendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    user_sailing: StickyUserSailing;
    user_sailing_v2: {
        [key: string]: any;
    };
    vip: StickyVip;
    [property: string]: any;
};
type StickyAvatarItem = {
    container_size: StickyContainerSize;
    fallback_layers: StickyFallbackLayers;
    mid: string;
    [property: string]: any;
};
type StickyContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type StickyFallbackLayers = {
    is_critical_group: boolean;
    layers: StickyLayer[];
    [property: string]: any;
};
type StickyLayer = {
    general_spec: StickyGeneralSpec;
    layer_config: StickyLayerConfig;
    resource: StickyResource;
    visible: boolean;
    [property: string]: any;
};
type StickyGeneralSpec = {
    pos_spec: StickyPosSpec;
    render_spec: StickyRenderSpec;
    size_spec: StickySizeSpec;
    [property: string]: any;
};
type StickyPosSpec = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type StickyRenderSpec = {
    opacity: number;
    [property: string]: any;
};
type StickySizeSpec = {
    height: number | number;
    width: number | number;
    [property: string]: any;
};
type StickyLayerConfig = {
    is_critical?: boolean;
    tags: StickyTags;
    [property: string]: any;
};
type StickyTags = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: StickyGENERALCFG;
    ICON_LAYER: {
        [key: string]: any;
    };
    [property: string]: any;
};
type StickyGENERALCFG = {
    config_type: number;
    general_config: StickyGeneralConfig;
    [property: string]: any;
};
type StickyGeneralConfig = {
    web_css_style: StickyWebcssStyle;
    [property: string]: any;
};
type StickyWebcssStyle = {
    "background-color": string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type StickyResource = {
    res_image: StickyResImage;
    res_type: number;
    [property: string]: any;
};
type StickyResImage = {
    image_src: StickyImageSrc;
    [property: string]: any;
};
type StickyImageSrc = {
    local: number;
    placeholder?: number;
    remote?: StickyRemote;
    src_type: number;
    [property: string]: any;
};
type StickyRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type StickyLevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type StickyNameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type StickyOfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type StickyPendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type StickyUserSailing = {
    cardbg: null;
    cardbg_with_focus: null;
    pendant: null;
    [property: string]: any;
};
type StickyVip = {
    accessStatus: number;
    avatar_subscript: number;
    dueRemark: string;
    label: StickyLabel;
    nickname_color: string;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type StickyLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type TentacledReplyControl = {
    location: string;
    max_line: number;
    time_desc: string;
    translation_switch: number;
    [property: string]: any;
};
type TentacledUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type UpperReplyControl = {
    cm_recommend_component: string;
    is_up_top: boolean;
    location: string;
    max_line: number;
    sub_reply_entry_text: string;
    sub_reply_title_text: string;
    time_desc: string;
    translation_switch: number;
    up_reply: boolean;
    [property: string]: any;
};
type UpperUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type TopReply = {
    action?: number;
    assist?: number;
    attr?: number;
    content?: TopReplyContent;
    count?: number;
    ctime?: number;
    dialog?: number;
    dialog_str?: string;
    dynamic_id_str?: string;
    fansgrade?: number;
    folder?: TopReplyFolder;
    invisible?: boolean;
    like?: number;
    member?: TopReplyMember;
    mid?: number;
    mid_str?: string;
    note_cvid_str?: string;
    oid?: number;
    oid_str?: string;
    parent?: number;
    parent_str?: string;
    rcount?: number;
    replies?: TopReplyReply[];
    reply_control?: TopReplyReplyControl;
    root?: number;
    root_str?: string;
    rpid?: number;
    rpid_str?: string;
    state?: number;
    track_info?: string;
    type?: number;
    up_action?: TopReplyUpAction;
    [property: string]: any;
};
type TopReplyContent = {
    jump_url: FluffyJumpurl;
    max_line: number;
    members: string[];
    message: string;
    [property: string]: any;
};
type FluffyJumpurl = {
    "https://b23.tv/mall-31Qhv-71b88": FluffyhttpsB23TvMall31Qhv71B88;
    "https://b23.tv/mall-31Qhv-72Hhp": FluffyhttpsB23TvMall31Qhv72Hhp;
    [property: string]: any;
};
type FluffyhttpsB23TvMall31Qhv71B88 = {
    app_name: string;
    app_package_name: string;
    app_url_schema: string;
    click_report: string;
    exposure_report: string;
    extra: TentacledExtra;
    icon_position: number;
    is_half_screen: boolean;
    match_once: boolean;
    pc_url: string;
    prefix_icon: string;
    state: number;
    title: string;
    underline: boolean;
    [property: string]: any;
};
type TentacledExtra = {
    goods_click_report: string;
    goods_cm_control: number;
    goods_exposure_report: string;
    goods_item_id: number;
    goods_show_type: number;
    is_word_search: boolean;
    [property: string]: any;
};
type FluffyhttpsB23TvMall31Qhv72Hhp = {
    app_name: string;
    app_package_name: string;
    app_url_schema: string;
    click_report: string;
    exposure_report: string;
    extra: StickyExtra;
    icon_position: number;
    is_half_screen: boolean;
    match_once: boolean;
    pc_url: string;
    prefix_icon: string;
    state: number;
    title: string;
    underline: boolean;
    [property: string]: any;
};
type StickyExtra = {
    goods_click_report: string;
    goods_cm_control: number;
    goods_exposure_report: string;
    goods_item_id: number;
    goods_show_type: number;
    is_word_search: boolean;
    [property: string]: any;
};
type TopReplyFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type TopReplyMember = {
    avatar: string;
    avatar_item: IndigoAvatarItem;
    contract_desc: string;
    face_nft_new: number;
    fans_detail: null;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: IndigoLevelInfo;
    mid: string;
    nameplate: IndigoNameplate;
    nft_interaction: null;
    official_verify: IndigoOfficialVerify;
    pendant: IndigoPendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    user_sailing: IndigoUserSailing;
    user_sailing_v2: {
        [key: string]: any;
    };
    vip: IndigoVip;
    [property: string]: any;
};
type IndigoAvatarItem = {
    container_size: IndigoContainerSize;
    fallback_layers: IndigoFallbackLayers;
    mid: string;
    [property: string]: any;
};
type IndigoContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type IndigoFallbackLayers = {
    is_critical_group: boolean;
    layers: IndigoLayer[];
    [property: string]: any;
};
type IndigoLayer = {
    general_spec: IndigoGeneralSpec;
    layer_config: IndigoLayerConfig;
    resource: IndigoResource;
    visible: boolean;
    [property: string]: any;
};
type IndigoGeneralSpec = {
    pos_spec: IndigoPosSpec;
    render_spec: IndigoRenderSpec;
    size_spec: IndigoSizeSpec;
    [property: string]: any;
};
type IndigoPosSpec = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type IndigoRenderSpec = {
    opacity: number;
    [property: string]: any;
};
type IndigoSizeSpec = {
    height: number | number;
    width: number | number;
    [property: string]: any;
};
type IndigoLayerConfig = {
    is_critical?: boolean;
    tags: IndigoTags;
    [property: string]: any;
};
type IndigoTags = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: IndigoGENERALCFG;
    ICON_LAYER: {
        [key: string]: any;
    };
    [property: string]: any;
};
type IndigoGENERALCFG = {
    config_type: number;
    general_config: IndigoGeneralConfig;
    [property: string]: any;
};
type IndigoGeneralConfig = {
    web_css_style: IndigoWebcssStyle;
    [property: string]: any;
};
type IndigoWebcssStyle = {
    "background-color": string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type IndigoResource = {
    res_image: IndigoResImage;
    res_type: number;
    [property: string]: any;
};
type IndigoResImage = {
    image_src: IndigoImageSrc;
    [property: string]: any;
};
type IndigoImageSrc = {
    local: number;
    placeholder?: number;
    remote?: IndigoRemote;
    src_type: number;
    [property: string]: any;
};
type IndigoRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type IndigoLevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type IndigoNameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type IndigoOfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type IndigoPendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type IndigoUserSailing = {
    cardbg: null;
    cardbg_with_focus: null;
    pendant: null;
    [property: string]: any;
};
type IndigoVip = {
    accessStatus: number;
    avatar_subscript: number;
    dueRemark: string;
    label: IndigoLabel;
    nickname_color: string;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type IndigoLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type TopReplyReply = {
    action?: number;
    assist?: number;
    attr?: number;
    content?: StickyContent;
    count?: number;
    ctime?: number;
    dialog?: number;
    dialog_str?: string;
    dynamic_id_str?: string;
    fansgrade?: number;
    folder?: StickyFolder;
    invisible?: boolean;
    like?: number;
    member?: StickyMember;
    mid?: number;
    mid_str?: string;
    note_cvid_str?: string;
    oid?: number;
    oid_str?: string;
    parent?: number;
    parent_str?: string;
    rcount?: number;
    replies?: null;
    reply_control?: StickyReplyControl;
    root?: number;
    root_str?: string;
    rpid?: number;
    rpid_str?: string;
    state?: number;
    track_info?: string;
    type?: number;
    up_action?: StickyUpAction;
    [property: string]: any;
};
type StickyContent = {
    jump_url: {
        [key: string]: any;
    };
    max_line: number;
    members: string[];
    message: string;
    [property: string]: any;
};
type StickyFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type StickyMember = {
    avatar: string;
    avatar_item: IndecentAvatarItem;
    contract_desc: string;
    face_nft_new: number;
    fans_detail: null;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: IndecentLevelInfo;
    mid: string;
    nameplate: IndecentNameplate;
    nft_interaction: null;
    official_verify: IndecentOfficialVerify;
    pendant: IndecentPendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    user_sailing: IndecentUserSailing;
    user_sailing_v2: {
        [key: string]: any;
    };
    vip: IndecentVip;
    [property: string]: any;
};
type IndecentAvatarItem = {
    container_size: IndecentContainerSize;
    fallback_layers: IndecentFallbackLayers;
    mid: string;
    [property: string]: any;
};
type IndecentContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type IndecentFallbackLayers = {
    is_critical_group: boolean;
    layers: IndecentLayer[];
    [property: string]: any;
};
type IndecentLayer = {
    general_spec: IndecentGeneralSpec;
    layer_config: IndecentLayerConfig;
    resource: IndecentResource;
    visible: boolean;
    [property: string]: any;
};
type IndecentGeneralSpec = {
    pos_spec: IndecentPosSpec;
    render_spec: IndecentRenderSpec;
    size_spec: IndecentSizeSpec;
    [property: string]: any;
};
type IndecentPosSpec = {
    axis_x: number;
    axis_y: number;
    coordinate_pos: number;
    [property: string]: any;
};
type IndecentRenderSpec = {
    opacity: number;
    [property: string]: any;
};
type IndecentSizeSpec = {
    height: number | number;
    width: number | number;
    [property: string]: any;
};
type IndecentLayerConfig = {
    is_critical?: boolean;
    tags: IndecentTags;
    [property: string]: any;
};
type IndecentTags = {
    AVATAR_LAYER?: {
        [key: string]: any;
    };
    GENERAL_CFG: IndecentGENERALCFG;
    ICON_LAYER: {
        [key: string]: any;
    };
    [property: string]: any;
};
type IndecentGENERALCFG = {
    config_type: number;
    general_config: IndecentGeneralConfig;
    [property: string]: any;
};
type IndecentGeneralConfig = {
    web_css_style: IndecentWebcssStyle;
    [property: string]: any;
};
type IndecentWebcssStyle = {
    "background-color": string;
    border: string;
    borderRadius: string;
    boxSizing: string;
    [property: string]: any;
};
type IndecentResource = {
    res_image: IndecentResImage;
    res_type: number;
    [property: string]: any;
};
type IndecentResImage = {
    image_src: IndecentImageSrc;
    [property: string]: any;
};
type IndecentImageSrc = {
    local: number;
    placeholder?: number;
    remote?: IndecentRemote;
    src_type: number;
    [property: string]: any;
};
type IndecentRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type IndecentLevelInfo = {
    current_exp: number;
    current_level: number;
    current_min: number;
    next_exp: number;
    [property: string]: any;
};
type IndecentNameplate = {
    condition: string;
    image: string;
    image_small: string;
    level: string;
    name: string;
    nid: number;
    [property: string]: any;
};
type IndecentOfficialVerify = {
    desc: string;
    type: number;
    [property: string]: any;
};
type IndecentPendant = {
    expire: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    n_pid: number;
    name: string;
    pid: number;
    [property: string]: any;
};
type IndecentUserSailing = {
    cardbg: null;
    cardbg_with_focus: null;
    pendant: null;
    [property: string]: any;
};
type IndecentVip = {
    accessStatus: number;
    avatar_subscript: number;
    dueRemark: string;
    label: IndecentLabel;
    nickname_color: string;
    themeType: number;
    vipDueDate: number;
    vipStatus: number;
    vipStatusWarn: string;
    vipType: number;
    [property: string]: any;
};
type IndecentLabel = {
    bg_color: string;
    bg_style: number;
    border_color: string;
    img_label_uri_hans: string;
    img_label_uri_hans_static: string;
    img_label_uri_hant: string;
    img_label_uri_hant_static: string;
    label_theme: string;
    path: string;
    text: string;
    text_color: string;
    use_img_label: boolean;
    [property: string]: any;
};
type StickyReplyControl = {
    location: string;
    max_line: number;
    time_desc: string;
    translation_switch: number;
    [property: string]: any;
};
type StickyUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type TopReplyReplyControl = {
    cm_recommend_component: string;
    is_up_top: boolean;
    location: string;
    max_line: number;
    sub_reply_entry_text: string;
    sub_reply_title_text: string;
    time_desc: string;
    translation_switch: number;
    up_reply: boolean;
    [property: string]: any;
};
type TopReplyUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type DataUpper = {
    mid: number;
    [property: string]: any;
};

/** 番剧下载地址（未登录） */
type BiliBangumiVideoPlayurlNoLogin = {
    code: number;
    message: string;
    result: Result;
    [property: string]: any;
};
type Result = {
    accept_description: string[];
    accept_format: string;
    accept_quality: number[];
    bp: number;
    clip_info_list: string[];
    code: number;
    durl: Durl$1[];
    durls: string[];
    fnval: number;
    fnver: number;
    format: string;
    from: string;
    has_paid: boolean;
    is_drm: boolean;
    is_preview: number;
    message: string;
    no_rexcode: number;
    quality: number;
    record_info: RecordInfo;
    result: string;
    seek_param: string;
    seek_type: string;
    status: number;
    support_formats: SupportFormat$1[];
    timelength: number;
    type: string;
    video_codecid: number;
    video_project: boolean;
    [property: string]: any;
};
type Durl$1 = {
    ahead?: string;
    backup_url?: string[];
    length?: number;
    md5?: string;
    order?: number;
    size?: number;
    url?: string;
    vhead?: string;
    [property: string]: any;
};
type RecordInfo = {
    record: string;
    record_icon: string;
    [property: string]: any;
};
type SupportFormat$1 = {
    codecs: string[];
    description: string;
    display_desc: string;
    format: string;
    has_preview: boolean;
    need_login?: boolean;
    new_description: string;
    quality: number;
    sub_description: string;
    superscript: string;
    [property: string]: any;
};

/** 视频下载地址（未登录） */
type BiliBiliVideoPlayurlNoLogin = {
    code: number;
    data: Data$3;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$3 = {
    accept_description: string[];
    accept_format: string;
    accept_quality: number[];
    durl: Durl[];
    format: string;
    from: string;
    high_format: null;
    last_play_cid: number;
    last_play_time: number;
    message: string;
    quality: number;
    result: string;
    seek_param: string;
    seek_type: string;
    support_formats: SupportFormat[];
    timelength: number;
    video_codecid: number;
    view_info: null;
    [property: string]: any;
};
type Durl = {
    ahead?: string;
    backup_url?: null;
    length?: number;
    order?: number;
    size?: number;
    url?: string;
    vhead?: string;
    [property: string]: any;
};
type SupportFormat = {
    codecs?: null;
    display_desc?: string;
    format?: string;
    new_description?: string;
    quality?: number;
    superscript?: string;
    [property: string]: any;
};

type KsEmojiList = {
    data: Data$2;
    [property: string]: any;
};
type Data$2 = {
    visionBaseEmoticons: VisionBaseEmoticons;
    [property: string]: any;
};
type VisionBaseEmoticons = {
    __typename: string;
    iconUrls: IconUrls;
    [property: string]: any;
};
type IconUrls = {
    '[666]': string;
    '[addition]': string;
    '[ahead]': string;
    '[airdrop]': string;
    '[almostcry]': string;
    '[alpaca]': string;
    '[amazing]': string;
    '[angry]': string;
    '[arranged]': string;
    '[awkard]': string;
    '[awkward]': string;
    '[balloon]': string;
    '[banger]': string;
    '[blissful]': string;
    '[boom]': string;
    '[boss]': string;
    '[brick]': string;
    '[bro]': string;
    '[BusyCrazy]': string;
    '[bye]': string;
    '[cake]': string;
    '[camera]': string;
    '[CanNotFinish]': string;
    '[cat]': string;
    '[celebrate]': string;
    '[celebrity]': string;
    '[checkmark]': string;
    '[cheers]': string;
    '[clap]': string;
    '[ComeOn]': string;
    '[Confused]': string;
    '[cool]': string;
    '[crazy]': string;
    '[cross]': string;
    '[crown]': string;
    '[cry]': string;
    '[cryLaugh]': string;
    '[Cuddle]': string;
    '[curious]': string;
    '[curl]': string;
    '[curse]': string;
    '[dance]': string;
    '[daydream]': string;
    '[daydreaming]': string;
    '[dazzling]': string;
    '[despise]': string;
    '[devastated]': string;
    '[dial]': string;
    '[dignose]': string;
    '[dirtytalk]': string;
    '[disdain]': string;
    '[distressed]': string;
    '[dizzy]': string;
    '[dog]': string;
    '[dogfood]': string;
    '[double]': string;
    '[dragon]': string;
    '[eat]': string;
    '[eatmelon]': string;
    '[emo]': string;
    '[energetic]': string;
    '[exercise]': string;
    '[explosion]': string;
    '[eyeroll]': string;
    '[EyesRolling]': string;
    '[facepalm]': string;
    '[fade]': string;
    '[fighting]': string;
    '[fire]': string;
    '[fireworks]': string;
    '[fistBump]': string;
    '[flirting]': string;
    '[follow]': string;
    '[forcesmile]': string;
    '[fortune]': string;
    '[fossil]': string;
    '[frown]': string;
    '[furious]': string;
    '[gamepad]': string;
    '[GameTime]': string;
    '[get]': string;
    '[ghost]': string;
    '[gold]': string;
    '[good]': string;
    '[goodmorning]': string;
    '[goodnight]': string;
    '[grin]': string;
    '[handheart]': string;
    '[hanging]': string;
    '[happy]': string;
    '[HappyNewYear]': string;
    '[HappySpringFestival]': string;
    '[hard]': string;
    '[HaveFun]': string;
    '[heart]': string;
    '[helmet]': string;
    '[Hi]': string;
    '[hitface]': string;
    '[hole]': string;
    '[Homework]': string;
    '[hug]': string;
    '[hustle]': string;
    '[ILoveU]': string;
    '[immediately]': string;
    '[joyful]': string;
    '[kiss]': string;
    '[kitty]': string;
    '[knee]': string;
    '[knife]': string;
    '[lateNight]': string;
    '[latern]': string;
    '[laughcry]': string;
    '[learning]': string;
    '[left]': string;
    '[leftfist]': string;
    '[like]': string;
    '[lion]': string;
    '[lipstick]': string;
    '[love]': string;
    '[loveu]': string;
    '[luck]': string;
    '[makeup]': string;
    '[microphone]': string;
    '[minus]': string;
    '[mirror]': string;
    '[mojito]': string;
    '[money]': string;
    '[mouse]': string;
    '[muscle]': string;
    '[music]': string;
    '[N95]': string;
    '[nail]': string;
    '[naughty]': string;
    '[nice]': string;
    '[no]': string;
    '[nolisten]': string;
    '[nolook]': string;
    '[nosebleed]': string;
    '[nospeak]': string;
    '[nostrils]': string;
    '[oh]': string;
    '[ok]': string;
    '[omg]': string;
    '[oops]': string;
    '[overworking]': string;
    '[pan]': string;
    '[party]': string;
    '[pat]': string;
    '[pig]': string;
    '[pigfoot]': string;
    '[pignose]': string;
    '[plea]': string;
    '[please]': string;
    '[pollution]': string;
    '[poor]': string;
    '[pout]': string;
    '[pray]': string;
    '[prickekheart]': string;
    '[Progress0]': string;
    '[Progress50]': string;
    '[Progress99]': string;
    '[quiet]': string;
    '[rainbow]': string;
    '[Really]': string;
    '[received]': string;
    '[redface]': string;
    '[redpacket]': string;
    '[relax]': string;
    '[rich]': string;
    '[right]': string;
    '[rightFist]': string;
    '[rose]': string;
    '[rotate]': string;
    '[sad]': string;
    '[salute]': string;
    '[SayHi]': string;
    '[scare]': string;
    '[scared]': string;
    '[seen]': string;
    '[shakeHands]': string;
    '[shiba]': string;
    '[shit]': string;
    '[shutup]': string;
    '[shy]': string;
    '[simper]': string;
    '[skeleton]': string;
    '[slacking]': string;
    '[sleep]': string;
    '[sleepy]': string;
    '[smile]': string;
    '[sneak]': string;
    '[snicker]': string;
    '[snort]': string;
    '[sophisticated]': string;
    '[Sorry]': string;
    '[sour]': string;
    '[stable]': string;
    '[starryeyed]': string;
    '[StayingUpLate]': string;
    '[StayPositive]': string;
    '[stunned]': string;
    '[stupid]': string;
    '[surprised]': string;
    '[sweat]': string;
    '[sweaty]': string;
    '[tears]': string;
    '[tease]': string;
    '[TellMeMore]': string;
    '[thanks]': string;
    '[think]': string;
    '[titter]': string;
    '[touch]': string;
    '[treacherous]': string;
    '[VacationTime]': string;
    '[vanillcake]': string;
    '[vibrant]': string;
    '[vomit]': string;
    '[vomitblood]': string;
    '[Wait]': string;
    '[waiting]': string;
    '[wanttoeat]': string;
    '[washhands]': string;
    '[watergun]': string;
    '[weary]': string;
    '[welcome]': string;
    '[wetwipes]': string;
    '[what]': string;
    '[whistle]': string;
    '[win]': string;
    '[wipenose]': string;
    '[won]': string;
    '[wronged]': string;
    '[yawn]': string;
    '[yes]': string;
    '[YouRight]': string;
    '[一起嗨皮]': string;
    '[上号]': string;
    '[上吊]': string;
    '[上號]': string;
    '[不听]': string;
    '[不看]': string;
    '[不聽]': string;
    '[不說]': string;
    '[不说]': string;
    '[乾杯]': string;
    '[亲亲]': string;
    '[优秀]': string;
    '[你好呀]': string;
    '[做不完]': string;
    '[做作业]': string;
    '[做作業]': string;
    '[健身]': string;
    '[偷瞄]': string;
    '[偷笑]': string;
    '[優秀]': string;
    '[元宝]': string;
    '[元寶]': string;
    '[元旦快乐]': string;
    '[元旦快樂]': string;
    '[元气满满]': string;
    '[元氣滿滿]': string;
    '[充满干劲]': string;
    '[充滿幹勁]': string;
    '[先睡了]': string;
    '[八倍鏡]': string;
    '[八倍镜]': string;
    '[再見]': string;
    '[再见]': string;
    '[冷汗]': string;
    '[减1]': string;
    '[出去丸]': string;
    '[出去玩]': string;
    '[出魂儿]': string;
    '[出魂兒]': string;
    '[加1]': string;
    '[加油]': string;
    '[勤洗手]': string;
    '[化妆]': string;
    '[化妝]': string;
    '[南]': string;
    '[卷]': string;
    '[叉号]': string;
    '[叉號]': string;
    '[双鸡]': string;
    '[发]': string;
    '[发呆]': string;
    '[口紅]': string;
    '[口红]': string;
    '[可怜]': string;
    '[可憐]': string;
    '[右哼哼]': string;
    '[右拳]': string;
    '[吃瓜]': string;
    '[吃飯]': string;
    '[吃饭]': string;
    '[吐彩虹]': string;
    '[吐血]': string;
    '[吓]': string;
    '[听音乐]': string;
    '[吹口哨]': string;
    '[呆住]': string;
    '[呕吐]': string;
    '[哈欠]': string;
    '[哦]': string;
    '[哭笑]': string;
    '[哼]': string;
    '[嘔吐]': string;
    '[嘘]': string;
    '[嘣]': string;
    '[嚇]': string;
    '[囧]': string;
    '[困]': string;
    '[困死了]': string;
    '[坏笑]': string;
    '[坑]': string;
    '[塗指甲]': string;
    '[壞笑]': string;
    '[大便]': string;
    '[大哥]': string;
    '[大哭]': string;
    '[大鼻孔]': string;
    '[天啊]': string;
    '[头盔]': string;
    '[奸笑]': string;
    '[好运来]': string;
    '[好運來]': string;
    '[委屈]': string;
    '[学习]': string;
    '[學習]': string;
    '[安排]': string;
    '[对不起]': string;
    '[对号]': string;
    '[尊嘟假嘟]': string;
    '[對不起]': string;
    '[對號]': string;
    '[尴尬]': string;
    '[尷尬]': string;
    '[左哼哼]': string;
    '[左拳]': string;
    '[已閱]': string;
    '[已阅]': string;
    '[干杯]': string;
    '[平底鍋]': string;
    '[平底锅]': string;
    '[庆祝]': string;
    '[強顏歡笑]': string;
    '[强颜欢笑]': string;
    '[微笑]': string;
    '[心心]': string;
    '[必勝]': string;
    '[必胜]': string;
    '[忙疯了]': string;
    '[忙瘋了]': string;
    '[快哭了]': string;
    '[怒言]': string;
    '[思考]': string;
    '[惊恐]': string;
    '[惊讶]': string;
    '[想吃]': string;
    '[愉快]': string;
    '[愛你]': string;
    '[愛心]': string;
    '[慶祝]': string;
    '[憨笑]': string;
    '[我愛你]': string;
    '[我爱你]': string;
    '[我看行]': string;
    '[戴口罩]': string;
    '[手柄]': string;
    '[扎心]': string;
    '[打call]': string;
    '[打招呼]': string;
    '[打电话]': string;
    '[打脸]': string;
    '[打臉]': string;
    '[打電話]': string;
    '[抓狂]': string;
    '[抠鼻]': string;
    '[抱抱]': string;
    '[抱拳]': string;
    '[拍一拍]': string;
    '[拜托]': string;
    '[拜託]': string;
    '[挑逗]': string;
    '[捂脸]': string;
    '[捂臉]': string;
    '[握手]': string;
    '[摄像机]': string;
    '[摳鼻]': string;
    '[摸头]': string;
    '[摸頭]': string;
    '[摸魚]': string;
    '[摸鱼]': string;
    '[撇嘴]': string;
    '[擦鼻涕]': string;
    '[攝像機]': string;
    '[收到]': string;
    '[放假啦]': string;
    '[放輕鬆]': string;
    '[放轻松]': string;
    '[敬礼]': string;
    '[敬禮]': string;
    '[新年快乐]': string;
    '[新年快樂]': string;
    '[旋轉]': string;
    '[旋转]': string;
    '[早上好]': string;
    '[星星眼]': string;
    '[晕]': string;
    '[暈]': string;
    '[暴汗]': string;
    '[有八卦]': string;
    '[期待]': string;
    '[板砖]': string;
    '[板磚]': string;
    '[柴犬]': string;
    '[欢迎]': string;
    '[歡迎]': string;
    '[正能量]': string;
    '[比心]': string;
    '[气球]': string;
    '[氣球]': string;
    '[水枪]': string;
    '[水槍]': string;
    '[求求了]': string;
    '[汗]': string;
    '[流鼻血]': string;
    '[涂指甲]': string;
    '[減1]': string;
    '[湿巾]': string;
    '[濕巾]': string;
    '[火]': string;
    '[灯笼]': string;
    '[点点关注]': string;
    '[点赞]': string;
    '[烟花]': string;
    '[煙花]': string;
    '[熬夜]': string;
    '[熬夜工作]': string;
    '[燈籠]': string;
    '[爆炸]': string;
    '[爱你]': string;
    '[爱心]': string;
    '[狗]': string;
    '[狗粮]': string;
    '[狗糧]': string;
    '[狮子]': string;
    '[猪头]': string;
    '[猪蹄]': string;
    '[猪鼻子]': string;
    '[猫]': string;
    '[獅子]': string;
    '[玫瑰]': string;
    '[生气]': string;
    '[生氣]': string;
    '[略略略]': string;
    '[疑問]': string;
    '[疑问]': string;
    '[疯狂工作]': string;
    '[疲惫]': string;
    '[疲憊]': string;
    '[瘋狂工作]': string;
    '[發]': string;
    '[發呆]': string;
    '[白眼]': string;
    '[皇冠]': string;
    '[皱眉]': string;
    '[皺眉]': string;
    '[睡覺]': string;
    '[睡觉]': string;
    '[石化]': string;
    '[礼花]': string;
    '[祈祷]': string;
    '[祈禱]': string;
    '[福字]': string;
    '[禮花]': string;
    '[稍等]': string;
    '[稳]': string;
    '[穩]': string;
    '[空投]': string;
    '[笑哭]': string;
    '[紅包]': string;
    '[紅臉蛋]': string;
    '[絕]': string;
    '[網紅]': string;
    '[網紅貓]': string;
    '[红包]': string;
    '[红脸蛋]': string;
    '[绝]': string;
    '[网红]': string;
    '[网红猫]': string;
    '[罵你]': string;
    '[羊駝]': string;
    '[羊驼]': string;
    '[美滋滋]': string;
    '[羞涩]': string;
    '[羞澀]': string;
    '[翻白眼]': string;
    '[老司机]': string;
    '[老司機]': string;
    '[老鐵]': string;
    '[老铁]': string;
    '[老鼠]': string;
    '[聽音樂]': string;
    '[肌肉]': string;
    '[胡思乱想]': string;
    '[胡思亂想]': string;
    '[色]': string;
    '[花謝了]': string;
    '[花谢了]': string;
    '[莫吉托]': string;
    '[菜刀]': string;
    '[落泪]': string;
    '[落淚]': string;
    '[蛋糕]': string;
    '[裂开]': string;
    '[裂開]': string;
    '[装傻]': string;
    '[裝傻]': string;
    '[親親]': string;
    '[調皮]': string;
    '[讓人頭大]': string;
    '[讚]': string;
    '[让人头大]': string;
    '[调皮]': string;
    '[豬蹄]': string;
    '[豬頭]': string;
    '[豬鼻子]': string;
    '[貓]': string;
    '[貼貼]': string;
    '[贏麻了]': string;
    '[贴贴]': string;
    '[赞]': string;
    '[赢麻了]': string;
    '[跪下]': string;
    '[跳舞]': string;
    '[辣眼睛]': string;
    '[进度0]': string;
    '[进度50]': string;
    '[进度99]': string;
    '[進度0]': string;
    '[進度50]': string;
    '[進度99]': string;
    '[遙遙領先]': string;
    '[遥遥领先]': string;
    '[鄙視]': string;
    '[鄙视]': string;
    '[酷]': string;
    '[酸了]': string;
    '[錢]': string;
    '[钱]': string;
    '[閉嘴]': string;
    '[闭嘴]': string;
    '[难受]': string;
    '[难过]': string;
    '[难过至极]': string;
    '[雙雞]': string;
    '[難受]': string;
    '[難過]': string;
    '[難過至極]': string;
    '[雾霾]': string;
    '[霧霾]': string;
    '[鞭炮]': string;
    '[頭盔]': string;
    '[香子蘭蛋糕]': string;
    '[香草蛋糕]': string;
    '[馬上安排]': string;
    '[驚恐]': string;
    '[驚訝]': string;
    '[马上安排]': string;
    '[骂你]': string;
    '[骷髅]': string;
    '[骷髏]': string;
    '[麥克風]': string;
    '[麦克风]': string;
    '[黑脸问]': string;
    '[黑臉問]': string;
    '[點贊]': string;
    '[點點關注]': string;
    '[鼓掌]': string;
    '[齜牙]': string;
    '[龇牙]': string;
    '[龍]': string;
    '[龙]': string;
    [property: string]: any;
};

type KsOneWork = {
    data: Data$1;
    [property: string]: any;
};
type Data$1 = {
    visionVideoDetail: VisionVideoDetail;
    [property: string]: any;
};
type VisionVideoDetail = {
    __typename: string;
    author: Author;
    commentLimit: CommentLimit;
    danmakuSwitch: boolean;
    llsid: string;
    photo: Photo;
    status: number;
    tags: Tag[];
    type: number;
    [property: string]: any;
};
type Author = {
    __typename: string;
    following: boolean;
    headerUrl: string;
    id: string;
    name: string;
    [property: string]: any;
};
type CommentLimit = {
    __typename: string;
    canAddComment: number;
    [property: string]: any;
};
type Photo = {
    __typename: string;
    caption: string;
    coronaCropManifest: null;
    coronaCropManifestH265: null;
    coverUrl: string;
    croppedPhotoH265Url: string;
    croppedPhotoUrl: string;
    duration: number;
    expTag: string;
    id: string;
    likeCount: string;
    liked: boolean;
    llsid: null;
    manifest: Manifest;
    manifestH265: ManifestH265;
    musicBlocked: null;
    photoH265Url: string;
    photoUrl: string;
    realLikeCount: number;
    stereoType: number;
    timestamp: number;
    videoRatio: number;
    videoResource: VideoResource;
    viewCount: string;
    [property: string]: any;
};
type Manifest = {
    __typename: string;
    adaptationSet: ManifestAdaptationSet[];
    businessType: number;
    mediaType: number;
    version: string;
    [property: string]: any;
};
type ManifestAdaptationSet = {
    __typename?: string;
    duration?: number;
    id?: number;
    representation?: PurpleRepresentation[];
    [property: string]: any;
};
type PurpleRepresentation = {
    __typename?: string;
    avgBitrate?: number;
    backupUrl?: string[];
    codecs?: null;
    defaultSelect?: boolean;
    disableAdaptive?: boolean;
    featureP2sp?: boolean;
    frameRate?: number;
    height?: number;
    hidden?: boolean;
    id?: number;
    m3u8Slice?: null;
    maxBitrate?: number;
    qualityLabel?: string;
    qualityType?: string;
    url?: string;
    width?: number;
    [property: string]: any;
};
type ManifestH265 = {
    adaptationSet: ManifestH265AdaptationSet[];
    businessType: number;
    hideAuto: boolean;
    manualDefaultSelect: boolean;
    mediaType: number;
    playInfo: ManifestH265PlayInfo;
    stereoType: number;
    version: string;
    videoFeature: ManifestH265VideoFeature;
    videoId: string;
    [property: string]: any;
};
type ManifestH265AdaptationSet = {
    duration?: number;
    id?: number;
    representation?: FluffyRepresentation[];
    [property: string]: any;
};
type FluffyRepresentation = {
    agc?: boolean;
    avgBitrate?: number;
    backupUrl?: string[];
    comment?: string;
    defaultSelect?: boolean;
    disableAdaptive?: boolean;
    featureP2sp?: boolean;
    fileSize?: number;
    frameRate?: number;
    hdrType?: number;
    height?: number;
    hidden?: boolean;
    id?: number;
    kvqScore?: PurpleKvqScore;
    makeupGain?: number;
    maxBitrate?: number;
    mute?: boolean;
    normalizeGain?: number;
    oriLoudness?: number;
    p2spCode?: string;
    quality?: number;
    qualityLabel?: string;
    qualityType?: string;
    url?: string;
    width?: number;
    [property: string]: any;
};
type PurpleKvqScore = {
    NR: number;
    NRPost: number;
    [property: string]: any;
};
type ManifestH265PlayInfo = {
    cdnTimeRangeLevel: number;
    [property: string]: any;
};
type ManifestH265VideoFeature = {
    avgEntropy: number;
    blockyProbability: number;
    blurProbability: number;
    mosScore: number;
    [property: string]: any;
};
type VideoResource = {
    h264: H264;
    hevc: Hevc;
    [property: string]: any;
};
type H264 = {
    adaptationSet: H264AdaptationSet[];
    businessType: number;
    hideAuto: boolean;
    manualDefaultSelect: boolean;
    mediaType: number;
    playInfo: H264PlayInfo;
    stereoType: number;
    version: string;
    videoFeature: H264VideoFeature;
    videoId: string;
    [property: string]: any;
};
type H264AdaptationSet = {
    duration?: number;
    id?: number;
    representation?: TentacledRepresentation[];
    [property: string]: any;
};
type TentacledRepresentation = {
    agc?: boolean;
    avgBitrate?: number;
    backupUrl?: string[];
    bitratePattern?: number[];
    comment?: string;
    defaultSelect?: boolean;
    disableAdaptive?: boolean;
    featureP2sp?: boolean;
    fileSize?: number;
    frameRate?: number;
    hdrType?: number;
    height?: number;
    hidden?: boolean;
    id?: number;
    kvqScore?: FluffyKvqScore;
    makeupGain?: number;
    maxBitrate?: number;
    mute?: boolean;
    normalizeGain?: number;
    oriLoudness?: number;
    p2spCode?: string;
    quality?: number;
    qualityLabel?: string;
    qualityType?: string;
    url?: string;
    width?: number;
    [property: string]: any;
};
type FluffyKvqScore = {
    FRPost: number;
    NR: number;
    NRPost: number;
    [property: string]: any;
};
type H264PlayInfo = {
    cdnTimeRangeLevel: number;
    [property: string]: any;
};
type H264VideoFeature = {
    avgEntropy: number;
    blockyProbability: number;
    blurProbability: number;
    mosScore: number;
    [property: string]: any;
};
type Hevc = {
    adaptationSet: HevcAdaptationSet[];
    businessType: number;
    hideAuto: boolean;
    manualDefaultSelect: boolean;
    mediaType: number;
    playInfo: HevcPlayInfo;
    stereoType: number;
    version: string;
    videoFeature: HevcVideoFeature;
    videoId: string;
    [property: string]: any;
};
type HevcAdaptationSet = {
    duration?: number;
    id?: number;
    representation?: StickyRepresentation[];
    [property: string]: any;
};
type StickyRepresentation = {
    agc?: boolean;
    avgBitrate?: number;
    backupUrl?: string[];
    comment?: string;
    defaultSelect?: boolean;
    disableAdaptive?: boolean;
    featureP2sp?: boolean;
    fileSize?: number;
    frameRate?: number;
    hdrType?: number;
    height?: number;
    hidden?: boolean;
    id?: number;
    kvqScore?: TentacledKvqScore;
    makeupGain?: number;
    maxBitrate?: number;
    mute?: boolean;
    normalizeGain?: number;
    oriLoudness?: number;
    p2spCode?: string;
    quality?: number;
    qualityLabel?: string;
    qualityType?: string;
    url?: string;
    width?: number;
    [property: string]: any;
};
type TentacledKvqScore = {
    NR: number;
    NRPost: number;
    [property: string]: any;
};
type HevcPlayInfo = {
    cdnTimeRangeLevel: number;
    [property: string]: any;
};
type HevcVideoFeature = {
    avgEntropy: number;
    blockyProbability: number;
    blurProbability: number;
    mosScore: number;
    [property: string]: any;
};
type Tag = {
    __typename: string;
    name: string;
    type: string;
    [property: string]: any;
};

type KsWorkComments = {
    data: Data;
    [property: string]: any;
};
type Data = {
    visionCommentList: VisionCommentList;
    [property: string]: any;
};
type VisionCommentList = {
    __typename: string;
    commentCount: number;
    pcursor: string;
    rootComments: RootComment[];
    [property: string]: any;
};
type RootComment = {
    __typename: string;
    authorId: string;
    authorLiked: boolean;
    authorName: string;
    commentId: string;
    content: string;
    headurl: string;
    liked: boolean;
    likedCount: string;
    realLikedCount: number;
    status: string;
    subCommentCount: number | null;
    subComments: SubComment[];
    subCommentsPcursor: null | string;
    timestamp: number;
    [property: string]: any;
};
type SubComment = {
    __typename: string;
    authorId: string;
    authorLiked: boolean;
    authorName: string;
    commentId: string;
    content: string;
    headurl: string;
    liked: boolean;
    likedCount: string;
    realLikedCount: number;
    replyTo: string;
    replyToUserName: string;
    status: string;
    timestamp: number;
    [property: string]: any;
};

/**
 * 移除methodType字段的工具类型
 */
type OmitMethodType<T> = Omit<T, 'methodType'>;
/**
 * 类型精度控制参数
 */
type TypeControl = {
    /**
     * 获取返回类型
     * 类型定义时间：2025-02-02
     *
     * 类型解析模式：
     * - `strict`: 返回严格类型（基于接口响应定义，随时间推移可能缺少未声明的字段）
     * - `loose` 或 `未指定`: 返回宽松的 any 类型（默认）
     *
     * @default 'loose'
     */
    typeMode?: 'strict' | 'loose';
};
interface BilibiliDataOptionsMap {
    单个视频作品数据: {
        opt: BilibiliMethodOptionsMap['VideoInfoParams'];
        data: BiliOneWork;
    };
    单个视频下载信息数据: {
        opt: BilibiliMethodOptionsMap['VideoStreamParams'];
        data: BiliVideoPlayurlIsLogin | BiliBiliVideoPlayurlNoLogin;
    };
    评论数据: {
        opt: BilibiliMethodOptionsMap['CommentParams'];
        data: BiliWorkComments;
    };
    用户主页数据: {
        opt: BilibiliMethodOptionsMap['UserParams'];
        data: BiliUserProfile;
    };
    用户主页动态列表数据: {
        opt: BilibiliMethodOptionsMap['UserParams'];
        data: BiliUserDynamic;
    };
    Emoji数据: {
        opt: BilibiliMethodOptionsMap['EmojiParams'];
        data: BiliEmojiList;
    };
    番剧基本信息数据: {
        opt: BilibiliMethodOptionsMap['BangumiInfoParams'];
        data: BiliBangumiVideoInfo;
    };
    番剧下载信息数据: {
        opt: BilibiliMethodOptionsMap['BangumiStreamParams'];
        data: BiliBangumiVideoPlayurlIsLogin | BiliBangumiVideoPlayurlNoLogin;
    };
    动态详情数据: {
        opt: BilibiliMethodOptionsMap['DynamicParams'];
        data: BiliDynamicInfo;
    };
    动态卡片数据: {
        opt: BilibiliMethodOptionsMap['DynamicParams'];
        data: BiliDynamicCard;
    };
    直播间信息: {
        opt: BilibiliMethodOptionsMap['LiveRoomParams'];
        data: BiliLiveRoomDetail;
    };
    直播间初始化信息: {
        opt: BilibiliMethodOptionsMap['LiveRoomParams'];
        data: BiliLiveRoomDef;
    };
    登录基本信息: {
        opt: BilibiliMethodOptionsMap['LoginBaseInfoParams'];
        data: any;
    };
    申请二维码: {
        opt: BilibiliMethodOptionsMap['GetQrcodeParams'];
        data: BiliNewLoginQrcode;
    };
    二维码状态: {
        opt: BilibiliMethodOptionsMap['QrcodeParams'];
        data: BiliCheckQrcode;
    };
    获取UP主总播放量: {
        opt: BilibiliMethodOptionsMap['UserParams'];
        data: BiliUserFullView;
    };
    AV转BV: {
        opt: BilibiliMethodOptionsMap['Av2BvParams'];
        data: BiliAv2Bv;
    };
    BV转AV: {
        opt: BilibiliMethodOptionsMap['Bv2AvParams'];
        data: BiliBv2AV;
    };
}
interface DouyinDataOptionsMap {
    聚合解析: {
        opt: DouyinMethodOptionsMap['WorkParams'];
        data: DyVideoWork | DyImageAlbumWork | DySlidesWork;
    };
    视频作品数据: {
        opt: DouyinMethodOptionsMap['VideoWorkParams'];
        data: DyVideoWork;
    };
    图集作品数据: {
        opt: DouyinMethodOptionsMap['ImageAlbumWorkParams'];
        data: DyImageAlbumWork;
    };
    合辑作品数据: {
        opt: DouyinMethodOptionsMap['SlidesWorkParams'];
        data: DySlidesWork;
    };
    评论数据: {
        opt: DouyinMethodOptionsMap['CommentParams'];
        data: DyWorkComments;
    };
    用户主页数据: {
        opt: DouyinMethodOptionsMap['UserParams'];
        data: DyUserInfo;
    };
    用户主页视频列表数据: {
        opt: DouyinMethodOptionsMap['UserParams'];
        data: DyUserPostVideos;
    };
    热点词数据: {
        opt: DouyinMethodOptionsMap['SearchParams'];
        data: DySuggestWords;
    };
    搜索数据: {
        opt: DouyinMethodOptionsMap['SearchParams'];
        data: DySearchInfo;
    };
    Emoji数据: {
        opt: DouyinMethodOptionsMap['EmojiListParams'];
        data: DyEmojiList;
    };
    动态表情数据: {
        opt: DouyinMethodOptionsMap['EmojiProParams'];
        data: DyEmojiProList;
    };
    音乐数据: {
        opt: DouyinMethodOptionsMap['MusicParams'];
        data: DyMusicWork;
    };
    直播间信息数据: {
        opt: DouyinMethodOptionsMap['UserParams'];
        data: DyUserLiveVideos;
    };
    申请二维码数据: {
        opt: DouyinMethodOptionsMap['QrcodeParams'];
        data: any;
    };
    指定评论回复数据: {
        opt: DouyinMethodOptionsMap['CommentReplyParams'];
        data: any;
    };
}
interface KuaishouDataOptionsMap {
    单个视频作品数据: {
        opt: KuaishouMethodOptionsMap['VideoInfoParams'];
        data: KsOneWork;
    };
    评论数据: {
        opt: KuaishouMethodOptionsMap['CommentParams'];
        data: KsWorkComments;
    };
    Emoji数据: {
        opt: KuaishouMethodOptionsMap['EmojiListParams'];
        data: KsEmojiList;
    };
}

type DouyinDataOptions<T extends keyof DouyinDataOptionsMap> = OmitMethodType<DouyinDataOptionsMap[T]['opt'] & TypeControl>;
type BilibiliDataOptions<T extends keyof BilibiliDataOptionsMap> = OmitMethodType<BilibiliDataOptionsMap[T]['opt'] & TypeControl>;
type KuaishouDataOptions<T extends keyof KuaishouDataOptionsMap> = OmitMethodType<KuaishouDataOptionsMap[T]['opt'] & TypeControl>;
/**
 * API请求错误类型
 * 该类型是方法 `getXXXData` 封装后请求遇到错误时的返回类型
 */
type APIErrorType<T extends 'douyin' | 'bilibili' | 'kuaishou' | 'default' = 'default'> = {
    /** 错误码 */
    code: T extends 'douyin' ? douoyinAPIErrorCode : T extends 'bilibili' ? bilibiliAPIErrorCode : T extends 'kuaishou' ? kuaishouAPIErrorCode : amagiAPIErrorCode;
    /** 错误时的响应数据 */
    data: any;
    /** amagi 错误详情 */
    amagiError: ErrorDetail;
    /** 错误信息 */
    amagiMessage: string;
};

/**
 * 基础响应类型
 */
type BaseResponse = {
    /** 响应消息 */
    message: string;
    /** 响应状态码 */
    code: number;
};
/**
 * 成功响应类型
 * @template T - 响应数据的类型，默认为any
 */
type SuccessResponse<T = any> = BaseResponse & {
    /** 响应状态 */
    success: true;
    /** 响应数据，类型由泛型 T 决定 */
    data: T;
    /** 成功响应时错误信息为空 */
    error: never;
};
/**
 * 错误响应类型
 */
type ErrorResponse = BaseResponse & {
    /** 响应状态 */
    success: false;
    /** API 错误类型 */
    error: APIErrorType;
    /** 错误响应时数据为空 */
    data: never;
};
/**
 * 通用API响应类型
 * @template T - 成功响应数据的类型，默认为any
 */
type ApiResponse<T = any> = SuccessResponse<T> | ErrorResponse;
/**
 * 验证抖音参数
 * @param methodType - 抖音方法类型
 * @param params - 待验证的参数
 * @returns 验证后的参数，符合原始API期望的类型
 */
declare const validateDouyinParams: <T extends DouyinMethodType>(methodType: T, params: unknown) => {
    methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
    aweme_id: string;
} | {
    methodType: "\u8BC4\u8BBA\u6570\u636E";
    aweme_id: string;
    number?: number;
    cursor?: number;
} | {
    methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
    sec_uid: string;
} | {
    methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
    query: string;
    number?: number;
    search_id?: string;
} | {
    methodType: "\u97F3\u4E50\u6570\u636E";
    music_id: string;
} | {
    methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801\u6570\u636E";
    verify_fp: string;
} | {
    methodType: "Emoji\u6570\u636E";
} | {
    methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
} | {
    methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
    aweme_id: string;
    comment_id: string;
    number?: number;
    cursor?: number;
};
/**
 * 验证哔哩哔哩参数
 * @param methodType - 哔哩哔哩方法类型
 * @param params - 待验证的参数
 * @returns 验证后的参数，符合原始API期望的类型
 */
declare const validateBilibiliParams: <T extends BilibiliMethodType>(methodType: T, params: unknown) => {
    methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
    bvid: string;
} | {
    methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
    avid: number;
    cid: number;
} | {
    methodType: "\u8BC4\u8BBA\u6570\u636E";
    type: number;
    oid: string;
    number?: number;
    mode?: 0 | 1 | 2 | 3;
    pagination_str?: string;
    plat?: number;
    seek_rpid?: string;
    web_location?: string;
} | {
    methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
    host_mid: number;
} | {
    methodType: "Emoji\u6570\u636E";
} | {
    methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
    season_id?: string;
    ep_id?: string;
} | {
    methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
    cid: number;
    ep_id: string;
} | {
    methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
    dynamic_id: string;
} | {
    methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
    room_id: string;
} | {
    methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
} | {
    methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
} | {
    methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
    qrcode_key: string;
} | {
    methodType: "AV\u8F6CBV";
    avid: number;
} | {
    methodType: "BV\u8F6CAV";
    bvid: string;
};
/**
 * 验证快手参数
 * @param methodType - 快手方法类型
 * @param params - 待验证的参数
 * @returns 验证后的参数，符合原始API期望的类型
 */
declare const validateKuaishouParams: <T extends KuaishouMethodType>(methodType: T, params: unknown) => {
    methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
    photoId: string;
} | {
    methodType: "\u8BC4\u8BBA\u6570\u636E";
    photoId: string;
} | {
    methodType: "Emoji\u6570\u636E";
};
/**
 * 创建成功响应格式
 * @param data - 响应数据
 * @param message - 响应消息（可选）
 * @param code - 响应状态码（可选，默认200）
 * @returns 格式化的成功API响应对象
 */
declare const createSuccessResponse: <T>(data: T, message: string, code?: number) => SuccessResponse<T>;
/**
 * 创建失败响应格式
 * @param error - 错误信息
 * @param message - 详细错误消息（可选）
 * @param code - 错误状态码（可选，默认500）
 * @returns 格式化的错误响应对象
 */
declare const createErrorResponse: (error: APIErrorType, message: string, code?: number) => ErrorResponse;

/**
 * 请求配置选项接口
 */
type RequestConfig = Omit<AxiosRequestConfig, 'url' | 'method' | 'data'>;
/**
 * Cookie配置选项接口
 */
type CookieConfig = {
    /** 抖音Cookie */
    douyin?: string;
    /** B站Cookie */
    bilibili?: string;
    /** 快手Cookie */
    kuaishou?: string;
};
/**
 * 客户端配置选项接口
 */
type Options = {
    /** Cookie配置 */
    cookies?: CookieConfig;
    /** 请求配置 */
    request?: Omit<AxiosRequestConfig, 'url' | 'method' | 'data'>;
};
/**
 * 创建Amagi客户端实例
 * @param options - 客户端配置选项，包含Cookie和请求配置
 * @returns 包含数据获取方法、服务器启动方法、绑定Cookie的平台工具集和API对象的对象
 */
declare const createAmagiClient: (options?: Options) => {
    /** 启动本地HTTP服务 */
    startServer: (port?: number) => express__default.Application;
    getDouyinData: <T extends DouyinMethodType, M extends TypeMode>(methodType: T, options?: ExtendedDouyinOptions<T> & {
        typeMode?: M;
    }) => Promise<ApiResponse<ConditionalReturnType<DouyinDataOptionsMap[T]["data"], M>>>;
    getBilibiliData: <T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
        typeMode?: M;
    }) => Promise<ApiResponse<ConditionalReturnType<BilibiliDataOptionsMap[T]["data"], M>>>;
    getKuaishouData: <T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
        typeMode?: M;
    }) => Promise<ApiResponse<ConditionalReturnType<KuaishouDataOptionsMap[T]["data"], M>>>;
    douyin: {
        /** 绑定了cookie和请求配置的抖音API对象，调用时不需要传递cookie */
        api: {
            getWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork | DyImageAlbumWork | DySlidesWork, M>>>;
            getVideoWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork, M>>>;
            getImageAlbumWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyImageAlbumWork, M>>>;
            getSlidesWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u5408\u8F91\u4F5C\u54C1\u6570\u636E";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DySlidesWork, M>>>;
            getComments: <M extends TypeMode>(options: Omit<{
                methodType: "\u8BC4\u8BBA\u6570\u636E";
                aweme_id: string;
                number?: number;
                cursor?: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyWorkComments, M>>>;
            getCommentReplies: <M extends TypeMode>(options: Omit<{
                methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
                aweme_id: string;
                comment_id: string;
                number?: number;
                cursor?: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
            getUserProfile: <M extends TypeMode>(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
                sec_uid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyUserInfo, M>>>;
            getEmojiList: <M extends TypeMode>(options: Omit<{
                methodType: "Emoji\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyEmojiList, M>>>;
            getEmojiProList: <M extends TypeMode>(options: Omit<{
                methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyEmojiProList, M>>>;
            getUserVideos: <M extends TypeMode>(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
                sec_uid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyUserPostVideos, M>>>;
            getMusicInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u97F3\u4E50\u6570\u636E";
                music_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyMusicWork, M>>>;
            getSuggestWords: <M extends TypeMode>(options: Omit<{
                methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
                query: string;
                number?: number;
                search_id?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DySuggestWords, M>>>;
            search: <M extends TypeMode>(options: Omit<{
                methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
                query: string;
                number?: number;
                search_id?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DySearchInfo, M>>>;
            getLiveRoomInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
                sec_uid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyUserLiveVideos, M>>>;
        };
        sign: typeof douyinSign;
        douyinApiUrls: typeof douyinApiUrls;
    };
    bilibili: {
        /** 绑定了cookie和请求配置的B站API对象，调用时不需要传递cookie */
        api: {
            getVideoInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
                bvid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliOneWork, M>>>;
            getVideoStream: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
                avid: number;
                cid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliVideoPlayurlIsLogin | BiliBiliVideoPlayurlNoLogin, M>>>;
            getComments: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u8BC4\u8BBA\u6570\u636E";
                type: number;
                oid: string;
                number?: number;
                mode?: 0 | 1 | 2 | 3;
                pagination_str?: string;
                plat?: number;
                seek_rpid?: string;
                web_location?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliWorkComments, M>>>;
            getUserProfile: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
                host_mid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliUserProfile, M>>>;
            getUserDynamic: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
                host_mid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliUserDynamic, M>>>;
            getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "Emoji\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliEmojiList, M>>>;
            getBangumiInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
                season_id?: string;
                ep_id?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoInfo, M>>>;
            getBangumiStream: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
                cid: number;
                ep_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoPlayurlIsLogin | BiliBangumiVideoPlayurlNoLogin, M>>>;
            getDynamicInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
                dynamic_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicInfo, M>>>;
            getDynamicCard: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
                dynamic_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicCard, M>>>;
            getLiveRoomDetail: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
                room_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDetail, M>>>;
            getLiveRoomInitInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
                room_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDef, M>>>;
            getLoginBasicInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
            getLoginQrcode: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliNewLoginQrcode, M>>>;
            checkQrcodeStatus: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
                qrcode_key: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliCheckQrcode, M>>>;
            getUserTotalPlayCount: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
                host_mid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliUserFullView, M>>>;
            convertAvToBv: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "AV\u8F6CBV";
                avid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliAv2Bv, M>>>;
            convertBvToAv: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "BV\u8F6CAV";
                bvid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliBv2AV, M>>>;
        };
        sign: {
            wbi_sign: typeof wbi_sign;
            av2bv: typeof av2bv;
            bv2av: typeof bv2av;
        };
        bilibiliApiUrls: typeof bilibiliApiUrls;
    };
    kuaishou: {
        /** 绑定了cookie和请求配置的快手API对象，调用时不需要传递cookie */
        api: {
            getWorkInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
                photoId: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<KsOneWork, M>>>;
            getComments: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u8BC4\u8BBA\u6570\u636E";
                photoId: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<KsWorkComments, M>>>;
            getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "Emoji\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<KsEmojiList, M>>>;
        };
        kuaishouApiUrls: typeof kuaishouApiUrls;
    };
};

/**
 * 获取返回类型
 * 类型定义时间：2025-02-02
 *
 * 类型解析模式：
 * - `strict`: 返回严格类型（基于接口响应定义，随时间推移可能缺少未声明的字段）
 * - `loose` 或 `未指定`: 返回宽松的 any 类型（默认）
 *
 * @default 'loose'
 */
type TypeMode = 'strict' | 'loose';
/** 条件类型：根据TypeMode决定返回类型 */
type ConditionalReturnType<T, M extends TypeMode> = M extends 'strict' ? T : any;
type ExtendedDouyinOptions<T extends DouyinMethodType> = Omit<DouyinDataOptionsMap[T]['opt'], 'methodType'> & {
    /**
     * 获取返回类型
     * 类型定义时间：2025-02-02
     *
     * 类型解析模式：
     * - `strict`: 返回严格类型（基于接口响应定义，随时间推移可能缺少未声明的字段）
     * - `loose` 或 `未指定`: 返回宽松的 any 类型（默认）
     *
     * @default 'loose'
     */
    typeMode?: TypeMode;
};
type ExtendedBilibiliOptions<T extends BilibiliMethodType> = Omit<BilibiliDataOptionsMap[T]['opt'], 'methodType'> & {
    /**
     * 获取返回类型
     * 类型定义时间：2025-02-02
     *
     * 类型解析模式：
     * - `strict`: 返回严格类型（基于接口响应定义，随时间推移可能缺少未声明的字段）
     * - `loose` 或 `未指定`: 返回宽松的 any 类型（默认）
     *
     * @default 'loose'
     */
    typeMode?: TypeMode;
};
type ExtendedKuaishouOptions<T extends KuaishouMethodType> = Omit<KuaishouDataOptionsMap[T]['opt'], 'methodType'> & {
    /**
     * 获取返回类型
     * 类型定义时间：2025-02-02
     *
     * 类型解析模式：
     * - `strict`: 返回严格类型（基于接口响应定义，随时间推移可能缺少未声明的字段）
     * - `loose` 或 `未指定`: 返回宽松的 any 类型（默认）
     *
     * @default 'loose'
     */
    typeMode?: TypeMode;
};
/**
 * 获取抖音数据的核心方法（推荐用法：第三个参数为cookie）
 * @param methodType - 请求数据类型
 * @param options - 请求参数对象，包含typeMode属性控制返回类型
 * @param cookie - 可选的用户Cookie
 * @param requestConfig - 可选的请求配置
 * @returns 根据typeMode返回对应类型的数据
 */
declare function getDouyinData<T extends DouyinMethodType, M extends TypeMode>(methodType: T, options?: ExtendedDouyinOptions<T> & {
    typeMode?: M;
}, cookie?: string, requestConfig?: RequestConfig): Promise<ApiResponse<ConditionalReturnType<DouyinDataOptionsMap[T]['data'], M>>>;
/**
 * 获取抖音数据的核心方法（重载：第二个参数为cookie）
 * @param methodType - 请求数据类型
 * @param cookie - 用户Cookie
 * @param options - 请求参数对象，包含typeMode属性控制返回类型
 * @param requestConfig - 可选的请求配置
 * @returns 根据typeMode返回对应类型的数据
 */
declare function getDouyinData<T extends DouyinMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedDouyinOptions<T> & {
    typeMode?: M;
}, requestConfig?: RequestConfig): Promise<ApiResponse<ConditionalReturnType<DouyinDataOptionsMap[T]['data'], M>>>;
/**
 * 获取B站数据的核心方法（推荐用法：第三个参数为cookie）
 * @param methodType - 请求数据类型
 * @param options - 请求参数对象，包含typeMode属性控制返回类型
 * @param cookie - 可选的用户Cookie
 * @returns 根据typeMode返回对应类型的数据
 */
declare function getBilibiliData<T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
    typeMode?: M;
}, cookie?: string, requestConfig?: RequestConfig): Promise<ApiResponse<ConditionalReturnType<BilibiliDataOptionsMap[T]['data'], M>>>;
/**
 * 获取B站数据的核心方法（重载：第二个参数为cookie）
 * @param methodType - 请求数据类型
 * @param cookie - 用户Cookie
 * @param options - 请求参数对象，包含typeMode属性控制返回类型
 * @returns 根据typeMode返回对应类型的数据
 */
declare function getBilibiliData<T extends BilibiliMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedBilibiliOptions<T> & {
    typeMode?: M;
}, requestConfig?: RequestConfig): Promise<ApiResponse<ConditionalReturnType<BilibiliDataOptionsMap[T]['data'], M>>>;
/**
 * 获取快手数据的核心方法（推荐用法：第三个参数为cookie）
 * @param methodType - 请求数据类型
 * @param options - 请求参数对象，包含typeMode属性控制返回类型
 * @param cookie - 可选的用户Cookie
 * @returns 根据typeMode返回对应类型的数据
 */
declare function getKuaishouData<T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
    typeMode?: M;
}, cookie?: string, requestConfig?: RequestConfig): Promise<ApiResponse<ConditionalReturnType<KuaishouDataOptionsMap[T]['data'], M>>>;
/**
 * 获取快手数据的核心方法（重载：第二个参数为cookie）
 * @param methodType - 请求数据类型
 * @param cookie - 用户Cookie
 * @param options - 请求参数对象，包含typeMode属性控制返回类型
 * @returns 根据typeMode返回对应类型的数据
 */
declare function getKuaishouData<T extends KuaishouMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedKuaishouOptions<T> & {
    typeMode?: M;
}, requestConfig?: RequestConfig): Promise<ApiResponse<ConditionalReturnType<KuaishouDataOptionsMap[T]['data'], M>>>;

/**
 * B站相关 API 的命名空间。
 *
 * 部分接口可能不需要 Cookie 但建议传递有效的用户 Cookie，以获取更多数据。
 *
 * 提供了一系列方法，用于与B站相关的 API 进行交互。
 *
 * 每个方法都接受参数和 Cookie，返回 Promise，解析为统一格式的API响应。
 */
declare const bilibili: {
    /**
     * 获取单个视频作品数据
     * @param options 请求参数，包含 bvid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getVideoInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        bvid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliOneWork, M>>>;
    /**
     * 获取单个视频下载信息数据
     * @param options 请求参数，包含 avid, cid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getVideoStream: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        avid: number;
        cid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliVideoPlayurlIsLogin | BiliBiliVideoPlayurlNoLogin, M>>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 type, oid, 可选的 number, pn 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getComments: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        type: number;
        oid: string;
        number?: number;
        mode?: 0 | 1 | 2 | 3;
        pagination_str?: string;
        plat?: number;
        seek_rpid?: string;
        web_location?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliWorkComments, M>>>;
    /**
     * 获取用户主页数据
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getUserProfile: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliUserProfile, M>>>;
    /**
     * 获取用户主页动态列表数据
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getUserDynamic: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliUserDynamic, M>>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "Emoji\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliEmojiList, M>>>;
    /**
     * 获取番剧基本信息数据
     * @param options 请求参数，包含可选的 season_id, ep_id 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getBangumiInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
        season_id?: string;
        ep_id?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoInfo, M>>>;
    /**
     * 获取番剧下载信息数据
     * @param options 请求参数，包含 cid, ep_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getBangumiStream: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        cid: number;
        ep_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoPlayurlIsLogin | BiliBangumiVideoPlayurlNoLogin, M>>>;
    /**
     * 获取动态详情数据
     * @param options 请求参数，包含 dynamic_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getDynamicInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicInfo, M>>>;
    /**
     * 获取动态卡片数据
     * @param options 请求参数，包含 dynamic_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getDynamicCard: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicCard, M>>>;
    /**
     * 获取直播间信息
     * @param options 请求参数，包含 room_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getLiveRoomDetail: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDetail, M>>>;
    /**
     * 获取直播间初始化信息
     * @param options 请求参数，包含 room_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getLiveRoomInitInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDef, M>>>;
    /**
     * 获取登录基本信息
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getLoginBasicInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
    /**
     * 申请登录二维码
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getLoginQrcode: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliNewLoginQrcode, M>>>;
    /**
     * 检查二维码状态
     * @param options 请求参数，包含 qrcode_key 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    checkQrcodeStatus: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
        qrcode_key: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliCheckQrcode, M>>>;
    /**
     * 获取 UP 主总播放量
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应
     */
    getUserTotalPlayCount: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliUserFullView, M>>>;
    /**
     * 将 AV 号转换为 BV 号
     * @param options 请求参数，包含 avid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie (此接口通常不需要)
     * @returns 统一格式的API响应
     */
    convertAvToBv: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "AV\u8F6CBV";
        avid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliAv2Bv, M>>>;
    /**
     * 将 BV 号转换为 AV 号
     * @param options 请求参数，包含 bvid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie (此接口通常不需要)
     * @returns 统一格式的API响应
     */
    convertBvToAv: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "BV\u8F6CAV";
        bvid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<BiliBv2AV, M>>>;
};
/**
 * 创建绑定了cookie的B站API对象
 * @param cookie - 要绑定的cookie（可选）
 * @returns 绑定了cookie的B站API对象，调用时不需要再传递cookie
 */
declare const createBoundBilibiliApi: (cookie: string, requestConfig: RequestConfig) => {
    /**
     * 获取单个视频作品数据
     * @param options 请求参数，包含 bvid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getVideoInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        bvid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliOneWork, M>>>;
    /**
     * 获取单个视频下载信息数据
     * @param options 请求参数，包含 avid, cid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getVideoStream: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        avid: number;
        cid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliVideoPlayurlIsLogin | BiliBiliVideoPlayurlNoLogin, M>>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 type, oid, 可选的 number, pn 和 typeMode
     * @returns 统一格式的API响应
     */
    getComments: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        type: number;
        oid: string;
        number?: number;
        mode?: 0 | 1 | 2 | 3;
        pagination_str?: string;
        plat?: number;
        seek_rpid?: string;
        web_location?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliWorkComments, M>>>;
    /**
     * 获取用户主页数据
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getUserProfile: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliUserProfile, M>>>;
    /**
     * 获取用户主页动态列表数据
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getUserDynamic: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliUserDynamic, M>>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @returns 统一格式的API响应
     */
    getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "Emoji\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliEmojiList, M>>>;
    /**
     * 获取番剧基本信息数据
     * @param options 请求参数，包含可选的 season_id, ep_id 和 typeMode
     * @returns 统一格式的API响应
     */
    getBangumiInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
        season_id?: string;
        ep_id?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoInfo, M>>>;
    /**
     * 获取番剧下载信息数据
     * @param options 请求参数，包含 cid, ep_id 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getBangumiStream: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
        cid: number;
        ep_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoPlayurlIsLogin | BiliBangumiVideoPlayurlNoLogin, M>>>;
    /**
     * 获取动态详情数据
     * @param options 请求参数，包含 dynamic_id 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getDynamicInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicInfo, M>>>;
    /**
     * 获取动态卡片数据
     * @param options 请求参数，包含 dynamic_id 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getDynamicCard: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
        dynamic_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicCard, M>>>;
    /**
     * 获取直播间信息
     * @param options 请求参数，包含 room_id 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getLiveRoomDetail: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDetail, M>>>;
    /**
     * 获取直播间初始化信息
     * @param options 请求参数，包含 room_id 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getLiveRoomInitInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
        room_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDef, M>>>;
    /**
     * 获取登录基本信息
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @returns 统一格式的API响应
     */
    getLoginBasicInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
    /**
     * 申请登录二维码
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @returns 统一格式的API响应
     */
    getLoginQrcode: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliNewLoginQrcode, M>>>;
    /**
     * 检查二维码状态
     * @param options 请求参数，包含 qrcode_key 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    checkQrcodeStatus: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
        qrcode_key: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliCheckQrcode, M>>>;
    /**
     * 获取 UP 主总播放量
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getUserTotalPlayCount: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
        host_mid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliUserFullView, M>>>;
    /**
     * 将 AV 号转换为 BV 号
     * @param options 请求参数，包含 avid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    convertAvToBv: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "AV\u8F6CBV";
        avid: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliAv2Bv, M>>>;
    /**
     * 将 BV 号转换为 AV 号
     * @param options 请求参数，包含 bvid 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    convertBvToAv: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "BV\u8F6CAV";
        bvid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<BiliBv2AV, M>>>;
};
/**
 * 绑定cookie的B站API对象类型
 */
type BoundBilibiliApi = ReturnType<typeof createBoundBilibiliApi>;

type BilibiliMethodOptionsWithoutMethodType = {
    [K in keyof BilibiliMethodOptionsMap]: OmitMethodType<BilibiliMethodOptionsMap[K]>;
};
declare class BiLiBiLiAPI {
    登录基本信息(): string;
    视频详细信息(data: BilibiliMethodOptionsWithoutMethodType['VideoInfoParams']): string;
    视频流信息(data: BilibiliMethodOptionsWithoutMethodType['VideoStreamParams']): string;
    /** 评论区类型，type参数详见 [评论区类型代码](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/comment/readme.md#评论区类型代码) */
    评论区明细(data: BilibiliMethodOptionsWithoutMethodType['CommentParams']): string;
    评论区状态(data: BilibiliMethodOptionsWithoutMethodType['CommentParams']): string;
    表情列表(): string;
    番剧明细(data: BilibiliMethodOptionsWithoutMethodType['BangumiInfoParams']): string;
    番剧视频流信息(data: BilibiliMethodOptionsWithoutMethodType['BangumiStreamParams']): string;
    用户空间动态(data: BilibiliMethodOptionsWithoutMethodType['UserParams']): string;
    动态详情(data: BilibiliMethodOptionsWithoutMethodType['DynamicParams']): string;
    动态卡片信息(data: BilibiliMethodOptionsWithoutMethodType['DynamicParams']): string;
    用户名片信息(data: BilibiliMethodOptionsWithoutMethodType['UserParams']): string;
    直播间信息(data: BilibiliMethodOptionsWithoutMethodType['LiveRoomParams']): string;
    直播间初始化信息(data: BilibiliMethodOptionsWithoutMethodType['LiveRoomParams']): string;
    申请二维码(): string;
    二维码状态(data: BilibiliMethodOptionsWithoutMethodType['QrcodeParams']): string;
    获取UP主总播放量(data: BilibiliMethodOptionsWithoutMethodType['UserParams']): string;
}
/** 该类下的所有方法只会返回拼接好参数后的 Url 地址，需要手动请求该地址以获取数据 */
declare const bilibiliApiUrls: BiLiBiLiAPI;

/**
 * av号转bv号
 * @param aid av号
 * @returns
 */
declare const av2bv: (aid: number) => `BV1${string}`;
/**
 * bv号转av号
 * @param bvid bv号
 * @returns
 */
declare const bv2av: (bvid: string) => number;

/**
 * 对请求链接进行 WBI 签名
 * @param BASEURL - 完整的请求地址，可以是字符串或 URL 对象
 * @param cookie - 有效的用户 Cookie 字符串
 * @returns 返回包含 WBI 签名的查询字符串
 * @throws 当获取 WBI 密钥失败或 URL 解析失败时抛出错误
 */
declare const wbi_sign: (BASEURL: string | URL, cookie: string) => Promise<string>;

/**
 * 哔哩哔哩API官方HTTP请求错误码
 */
declare const bilibiliErrorCodeMap: {
    '-1': string;
    '-2': string;
    '-3': string;
    '-4': string;
    '-101': string;
    '-102': string;
    '-103': string;
    '-104': string;
    '-105': string;
    '-106': string;
    '-107': string;
    '-108': string;
    '-110': string;
    '-111': string;
    '-112': string;
    '-113': string;
    '-114': string;
    '-115': string;
    '-304': string;
    '-307': string;
    '-352': string;
    '-400': string;
    '-401': string;
    '-403': string;
    '-404': string;
    '-405': string;
    '-409': string;
    '-412': string;
    '-500': string;
    '-503': string;
    '-504': string;
    '-509': string;
    '-616': string;
    '-617': string;
    '-625': string;
    '-626': string;
    '-628': string;
    '-629': string;
    '-632': string;
    '-643': string;
    '-650': string;
    '-652': string;
    '-658': string;
    '-662': string;
    '-688': string;
    '-689': string;
    '-701': string;
    '-799': string;
    '-8888': string;
};

declare const qtparam: (BASEURL: string, cookie: string) => Promise<{
    QUERY: string;
    STATUS: string;
    isvip?: undefined;
} | {
    QUERY: string;
    STATUS: string;
    isvip: true;
} | {
    QUERY: string;
    STATUS: string;
    isvip: false;
}>;

/**
 * 创建B站路由
 * @param cookie - B站Cookie
 * @param requestConfig - 可选的请求配置
 * @returns Express路由器
 */
declare const createBilibiliRoutes: (cookie: string, requestConfig?: RequestConfig) => Router;

type bilibiliUtilsModel = {
    /** 签名算法相关 */
    sign: {
        /** WBI签名算法 */
        wbi_sign: typeof wbi_sign;
        /** AV号转BV号 */
        av2bv: typeof av2bv;
        /** BV号转AV号 */
        bv2av: typeof bv2av;
    };
    /** 该类下的所有方法只会返回拼接好参数后的 Url 地址，需要手动请求该地址以获取数据 */
    bilibiliApiUrls: typeof bilibiliApiUrls;
    /**
     * B站相关 API 的命名空间。
     *
     * 部分接口可能不需要 Cookie 但建议传递有效的用户 Cookie，以获取更多数据。
     *
     * 提供了一系列方法，用于与B站相关的 API 进行交互。
     *
     * 每个方法都接受参数和 Cookie，返回 Promise，解析为接口返回的原始数据。
     */
    api: typeof bilibili;
};
/** B站相关功能模块 (工具集) */
declare const bilibiliUtils: bilibiliUtilsModel;

/**
 * 封装了所有抖音相关的API请求，采用对象化的方式组织。
 *
 * 提供了一系列方法，用于与抖音相关的 API 进行交互。
 *
 * 每个方法都接受参数和 Cookie，返回 Promise，解析为统一格式的API响应。
 */
declare const douyin: {
    /**
     * 聚合解析 (视频/图集/合辑)
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含视频、图集或合辑数据
     */
    getWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork | DyImageAlbumWork | DySlidesWork, M>>>;
    /**
     * 获取视频作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含视频作品详细信息
     */
    getVideoWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork, M>>>;
    /**
     * 获取图集作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含图集作品详细信息
     */
    getImageAlbumWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyImageAlbumWork, M>>>;
    /**
     * 获取合辑作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含合辑作品详细信息
     */
    getSlidesWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u5408\u8F91\u4F5C\u54C1\u6570\u636E";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DySlidesWork, M>>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 aweme_id, 可选的 number, cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含评论列表数据
     */
    getComments: <M extends TypeMode>(options: Omit<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        aweme_id: string;
        number?: number;
        cursor?: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyWorkComments, M>>>;
    /**
     * 获取指定评论回复数据
     * @param options 请求参数，包含 aweme_id, comment_id, 可选的 number, cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含评论回复数据
     */
    getCommentReplies: <M extends TypeMode>(options: Omit<{
        methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
        aweme_id: string;
        comment_id: string;
        number?: number;
        cursor?: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
    /**
     * 获取用户主页数据
     * @param options 请求参数，包含 sec_uid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含用户详细信息
     */
    getUserProfile: <M extends TypeMode>(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyUserInfo, M>>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 可选的用户 Cookie
     * @returns 统一格式的API响应，包含Emoji列表数据
     */
    getEmojiList: <M extends TypeMode>(options: Omit<{
        methodType: "Emoji\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyEmojiList, M>>>;
    /**
     * 获取动态表情数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含动态表情数据
     */
    getEmojiProList: <M extends TypeMode>(options: Omit<{
        methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyEmojiProList, M>>>;
    /**
     * 获取用户主页视频列表数据
     * @param options 请求参数，包含 sec_uid, 可选的 number, max_cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含用户发布的视频列表
     */
    getUserVideos: <M extends TypeMode>(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyUserPostVideos, M>>>;
    /**
     * 获取音乐数据
     * @param options 请求参数，包含 music_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含音乐详细信息
     */
    getMusicInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u97F3\u4E50\u6570\u636E";
        music_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyMusicWork, M>>>;
    /**
     * 获取热点词数据
     * @param options 请求参数，包含 query, 可选的 number 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含热点搜索词列表
     */
    getSuggestWords: <M extends TypeMode>(options: Omit<{
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DySuggestWords, M>>>;
    /**
     * 获取搜索数据
     * @param options 请求参数，包含 query, 可选的 number, search_id, cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含搜索结果数据
     */
    search: <M extends TypeMode>(options: Omit<{
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DySearchInfo, M>>>;
    /**
     * 获取直播间信息
     * @param options 请求参数，包含 sec_uid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 统一格式的API响应，包含直播间详细信息
     */
    getLiveRoomInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie: string, requestConfig?: RequestConfig) => Promise<ApiResponse<ConditionalReturnType<DyUserLiveVideos, M>>>;
};
/**
 * 创建绑定了cookie的抖音API对象
 * @param cookie - 要绑定的cookie
 * @returns 绑定了cookie的抖音API对象，调用时不需要再传递cookie
 */
declare const createBoundDouyinApi: (cookie: string, requestConfig: RequestConfig) => {
    /**
     * 聚合解析 (视频/图集/合辑)
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @returns 统一格式的API响应，包含视频、图集或合辑数据
     */
    getWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork | DyImageAlbumWork | DySlidesWork, M>>>;
    /**
     * 获取视频作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @returns 统一格式的API响应，包含视频作品详细信息
     */
    getVideoWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork, M>>>;
    /**
     * 获取图集作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @returns 统一格式的API响应，包含图集作品详细信息
     */
    getImageAlbumWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyImageAlbumWork, M>>>;
    /**
     * 获取合辑作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @returns 统一格式的API响应，包含合辑作品详细信息
     */
    getSlidesWorkInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u5408\u8F91\u4F5C\u54C1\u6570\u636E";
        aweme_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DySlidesWork, M>>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 aweme_id, 可选的 number, cursor 和 typeMode
     * @returns 统一格式的API响应，包含评论列表数据
     */
    getComments: <M extends TypeMode>(options: Omit<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        aweme_id: string;
        number?: number;
        cursor?: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyWorkComments, M>>>;
    /**
     * 获取指定评论回复数据
     * @param options 请求参数，包含 aweme_id, comment_id, 可选的 number, cursor 和 typeMode
     * @returns 统一格式的API响应，包含评论回复数据
     */
    getCommentReplies: <M extends TypeMode>(options: Omit<{
        methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
        aweme_id: string;
        comment_id: string;
        number?: number;
        cursor?: number;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
    /**
     * 获取用户主页数据
     * @param options 请求参数，包含 sec_uid 和可选的 typeMode
     * @returns 统一格式的API响应，包含用户详细信息
     */
    getUserProfile: <M extends TypeMode>(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyUserInfo, M>>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @returns 统一格式的API响应，包含Emoji列表数据
     */
    getEmojiList: <M extends TypeMode>(options: Omit<{
        methodType: "Emoji\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyEmojiList, M>>>;
    /**
     * 获取动态表情数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @returns 统一格式的API响应，包含动态表情数据
     */
    getEmojiProList: <M extends TypeMode>(options: Omit<{
        methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyEmojiProList, M>>>;
    /**
     * 获取用户主页视频列表数据
     * @param options 请求参数，包含 sec_uid, 可选的 number, max_cursor 和 typeMode
     * @returns 统一格式的API响应，包含用户发布的视频列表
     */
    getUserVideos: <M extends TypeMode>(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyUserPostVideos, M>>>;
    /**
     * 获取音乐数据
     * @param options 请求参数，包含 music_id 和可选的 typeMode
     * @returns 统一格式的API响应，包含音乐详细信息
     */
    getMusicInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u97F3\u4E50\u6570\u636E";
        music_id: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyMusicWork, M>>>;
    /**
     * 获取热点词数据
     * @param options 请求参数，包含 query, 可选的 number 和 typeMode
     * @returns 统一格式的API响应，包含热点搜索词列表
     */
    getSuggestWords: <M extends TypeMode>(options: Omit<{
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DySuggestWords, M>>>;
    /**
     * 获取搜索数据
     * @param options 请求参数，包含 query, 可选的 number, search_id, cursor 和 typeMode
     * @returns 统一格式的API响应，包含搜索结果数据
     */
    search: <M extends TypeMode>(options: Omit<{
        methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
        query: string;
        number?: number;
        search_id?: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DySearchInfo, M>>>;
    /**
     * 获取直播间信息
     * @param options 请求参数，包含 sec_uid 和可选的 typeMode
     * @returns 统一格式的API响应，包含直播间详细信息
     */
    getLiveRoomInfo: <M extends TypeMode>(options: Omit<{
        methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
        sec_uid: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<DyUserLiveVideos, M>>>;
};
/**
 * 绑定cookie的抖音API对象类型
 */
type BoundDouyinApi = ReturnType<typeof createBoundDouyinApi>;

type DouyinMethodOptionsWithoutMethodType = {
    [K in keyof DouyinMethodOptionsMap]: OmitMethodType<DouyinMethodOptionsMap[K]>;
};
declare class DouyinAPI {
    private browserVersion;
    /**
     * 构造函数
     * @param userAgent - 用户代理字符串，用于提取浏览器版本信息
     */
    constructor(userAgent?: string);
    /**
     * 获取通用的基础参数
     * @returns 通用基础参数对象
     */
    private getBaseParams;
    /**
     * 获取视频或图集数据的接口地址
     * @param data - 请求参数，包含aweme_id
     * @returns 完整的接口URL
     */
    视频或图集(data: DouyinMethodOptionsWithoutMethodType['WorkParams']): string;
    /**
     * 获取评论数据的接口地址
     * @param data - 请求参数，包含aweme_id、cursor、number等
     * @returns 完整的接口URL
     */
    评论(data: DouyinMethodOptionsWithoutMethodType['CommentParams']): string;
    /**
     * 获取二级评论数据的接口地址
     * @param data - 请求参数，包含aweme_id、comment_id等
     * @returns 完整的接口URL
     */
    二级评论(data: DouyinMethodOptionsWithoutMethodType['CommentReplyParams']): string;
    /**
     * 获取动图数据的接口地址
     * @param data - 请求参数，包含aweme_id
     * @returns 完整的接口URL
     */
    动图(data: DouyinMethodOptionsWithoutMethodType['WorkParams']): string;
    /**
     * 获取表情数据的接口地址
     * @returns 完整的接口URL
     */
    表情(): string;
    /**
     * 获取用户主页视频数据的接口地址
     * @param data - 请求参数，包含sec_uid
     * @returns 完整的接口URL
     */
    用户主页视频(data: DouyinMethodOptionsWithoutMethodType['UserParams']): string;
    /**
     * 获取用户主页信息的接口地址
     * @param data - 请求参数，包含sec_uid
     * @returns 完整的接口URL
     */
    用户主页信息(data: DouyinMethodOptionsWithoutMethodType['UserParams']): string;
    /**
     * 获取热点词数据的接口地址
     * @param data - 请求参数，包含query
     * @returns 完整的接口URL
     */
    热点词(data: DouyinMethodOptionsWithoutMethodType['SearchParams']): string;
    /**
     * 获取搜索数据的接口地址
     * @param data - 请求参数，包含query、number、search_id等
     * @returns 完整的接口URL
     */
    搜索(data: DouyinMethodOptionsWithoutMethodType['SearchParams']): string;
    /**
     * 获取互动表情数据的接口地址
     * @returns 完整的接口URL
     */
    互动表情(): string;
    /**
     * 获取背景音乐数据的接口地址
     * @param data - 请求参数，包含music_id
     * @returns 完整的接口URL
     */
    背景音乐(data: DouyinMethodOptionsWithoutMethodType['MusicParams']): string;
    /**
     * 获取直播间信息的接口地址
     * @param data - 请求参数，包含web_rid、room_id
     * @returns 完整的接口URL
     */
    直播间信息(data: DouyinMethodOptionsWithoutMethodType['LiveRoomParams']): string;
    /**
     * 获取申请二维码的接口地址
     * @param data - 请求参数，包含verify_fp
     * @returns 完整的接口URL
     */
    申请二维码(data: DouyinMethodOptionsWithoutMethodType['QrcodeParams']): string;
}
/**
 * 默认的DouyinAPI实例（使用默认浏览器版本125.0.0.0）
 * 该类下的所有方法只会返回拼接好参数后的 Url 地址，需要手动请求该地址以获取数据
 *
 * 缺少 `a_bougs` 参数，请自行生成拼接
 */
declare const douyinApiUrls: DouyinAPI;

declare class douyinSign {
    /**
     * 生成一个指定长度的随机字符串
     * @param length 字符串长度，默认为116
     * @returns
     */
    static Mstoken(length: number): string;
    /**
     * a_bogus 签名算法
     * @param url 需要签名的地址
     * @returns 对此地址签名后的URL查询参数
     */
    static AB(url: string, userAgent?: string): string;
    /** 生成一个唯一的验证字符串 */
    static VerifyFpManager(): string;
}

/**
 * 创建抖音路由
 * @param cookie - 抖音Cookie
 * @param requestConfig - 可选的请求配置
 * @returns Express路由器
 */
declare const createDouyinRoutes: (cookie: string, requestConfig?: RequestConfig) => Router;

type douyinUtilsModel = {
    /** 签名算法相关 */
    sign: typeof douyinSign;
    /**
     * 该类下的所有方法只会返回拼接好参数后的 Url 地址，需要手动请求该地址以获取数据
     *
     * 缺少 `a_bougs` 参数，请自行生成拼接
     */
    douyinApiUrls: typeof douyinApiUrls;
    /**
     * 封装了所有抖音相关的API请求，采用对象化的方式组织。
     *
     * 提供了一系列方法，用于与抖音相关的 API 进行交互。
     *
     * 每个方法都接受参数和 Cookie，返回 Promise，解析为接口返回的原始数据。
     */
    api: typeof douyin;
};
/** 抖音相关功能模块 (工具集) */
declare const douyinUtils: douyinUtilsModel;

/**
 * 快手相关 API 的命名空间。
 */
declare const kuaishou: {
    /**
     * 获取单个视频作品数据
     * @param options 请求参数，包含 photoId 和可选的 typeMode
     * @param cookie 可选的用户 Cookie
     * @returns 统一格式的API响应
     */
    getWorkInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        photoId: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<KsOneWork, M>>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 photoId 和可选的 typeMode
     * @param cookie 可选的用户 Cookie
     * @returns 统一格式的API响应
     */
    getComments: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        photoId: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<KsWorkComments, M>>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 可选的用户 Cookie
     * @returns 统一格式的API响应
     */
    getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "Emoji\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }, cookie?: string) => Promise<ApiResponse<ConditionalReturnType<KsEmojiList, M>>>;
};
/**
 * 创建绑定了cookie的快手API对象
 * @param cookie - 要绑定的cookie（可选）
 * @returns 绑定了cookie的快手API对象，调用时不需要再传递cookie
 */
declare const createBoundKuaishouApi: (cookie: string, requestConfig: RequestConfig) => {
    /**
     * 获取单个视频作品数据
     * @param options 请求参数，包含 photoId 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getWorkInfo: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
        photoId: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<KsOneWork, M>>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 photoId 和可选的 typeMode
     * @returns 统一格式的API响应
     */
    getComments: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "\u8BC4\u8BBA\u6570\u636E";
        photoId: string;
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<KsWorkComments, M>>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @returns 统一格式的API响应
     */
    getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
        methodType: "Emoji\u6570\u636E";
    }, "methodType"> & {
        typeMode?: TypeMode;
    } & {
        typeMode?: M | undefined;
    }) => Promise<ApiResponse<ConditionalReturnType<KsEmojiList, M>>>;
};
/**
 * 绑定cookie的快手API对象类型
 */
type BoundKuaishouApi = ReturnType<typeof createBoundKuaishouApi>;

type KuaishouMethodOptionsWithoutMethodType = {
    [K in keyof KuaishouMethodOptionsMap]: OmitMethodType<KuaishouMethodOptionsMap[K]>;
};
declare class API {
    单个作品信息<T extends KuaishouMethodOptionsWithoutMethodType['VideoInfoParams']>(data: T): {
        /** 接口类型 */
        type: string;
        /** 请求url */
        url: string;
        /** 请求参数 */
        body: {
            /** 接口类型 */
            operationName: string;
            variables: {
                /** 作品ID */
                photoId: string;
                page: string;
            };
            query: string;
        };
    };
    作品评论信息<T extends KuaishouMethodOptionsWithoutMethodType['CommentParams']>(data: T): {
        type: string;
        url: string;
        body: {
            operationName: string;
            variables: {
                photoId: string;
                pcursor: string;
            };
            query: string;
        };
    };
    表情(): {
        type: string;
        url: string;
        body: {
            operationName: string;
            variables: {};
            query: string;
        };
    };
}
/** 该类下的所有方法只会返回拼接好参数后的 Url 地址和请求体，需要手动请求该地址以获取数据 */
declare const kuaishouApiUrls: API;

/**
 * 创建快手路由
 * @param cookie - 快手Cookie
 * @param requestConfig - 可选的请求配置
 * @returns Express路由器
 */
declare const createKuaishouRoutes: (cookie: string, requestConfig?: RequestConfig) => Router;

type kuaishouUtilsModel = {
    /** 该类下的所有方法只会返回拼接好参数后的 Url 地址和请求体，需要手动请求该地址以获取数据 */
    kuaishouApiUrls: typeof kuaishouApiUrls;
    /**
     * 封装了所有快手相关的API请求，采用对象化的方式组织。
     *
     * 提供了一系列方法，用于与抖音相关的 API 进行交互。
     *
     * 每个方法都接受参数和 Cookie，返回 Promise，解析为接口返回的原始数据。
     */
    api: typeof kuaishou;
};
/** 快手相关功能模块 (工具集) */
declare const kuaishouUtils: kuaishouUtilsModel;

declare class CustomLogger {
    private logger;
    chalk: ChalkInstance;
    red: (text: string) => string;
    green: (text: string) => string;
    yellow: (text: string) => string;
    blue: (text: string) => string;
    magenta: (text: string) => string;
    cyan: (text: string) => string;
    white: (text: string) => string;
    gray: (text: string) => string;
    constructor(name: string);
    info(message: any, ...args: any[]): void;
    warn(message: any, ...args: any[]): void;
    error(message: any, ...args: any[]): void;
    mark(message: any, ...args: any[]): void;
    debug(message: any, ...args: any[]): void;
}
declare const logger: CustomLogger;
declare const httpLogger: CustomLogger;

/**
 * 创建一个日志中间件，用于记录特定请求的详细信息
 * @param pathsToLog 指定需要记录日志的请求路径数组如果未提供，则记录所有请求的日志
 * @returns
 */
declare const logMiddleware: (pathsToLog?: string[]) => RequestHandler;

/**
 * 执行网络请求并返回数据
 * @param config - axios请求配置
 * @returns 响应数据
 */
declare const fetchData: <T = any>(config: AxiosRequestConfig) => Promise<T>;
/**
 * 执行网络请求并返回完整响应对象
 * @param config - axios请求配置
 * @returns axios响应对象
 */
declare const fetchResponse: <T = unknown>(config: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
/**
 * 获取响应头和数据
 * @param config - axios请求配置
 * @returns 包含headers和data的对象
 */
declare const getHeadersAndData: <T = any>(config: AxiosRequestConfig) => Promise<{
    headers: AxiosResponse<T>["headers"];
    data: T;
}>;

/**
 * API错误类
 */
declare class ApiError extends Error {
    readonly code: number;
    readonly platform: string;
    /**
     * 构造API错误
     * @param message - 错误消息
     * @param code - 错误代码
     * @param platform - 平台名称
     */
    constructor(message: string, code?: number, platform?: string);
}
/**
 * 参数验证错误类
 */
declare class ValidationError extends Error {
    readonly errors: Array<{
        field: string;
        message: string;
    }>;
    readonly requestPath?: string;
    /**
     * 构造参数验证错误
     * @param message - 错误消息
     * @param errors - 详细错误信息
     * @param requestPath - HTTP请求路径
     */
    constructor(message: string, errors: Array<{
        field: string;
        message: string;
    }>, requestPath?: string);
    /**
     * 从Zod错误创建验证错误
     * @param zodError - Zod验证错误
     * @param requestPath - HTTP请求路径
     * @returns 验证错误实例
     */
    static fromZodError(zodError: z.ZodError, requestPath?: string): ValidationError;
}
/**
 * 处理错误并返回统一格式
 * @param error - 错误对象
 * @param requestPath - HTTP请求路径（可选）
 * @returns 统一的错误响应格式
 */
declare const handleError: (error: unknown, requestPath?: string) => {
    data: null;
    message: string;
    code: number;
    errors?: Array<{
        field: string;
        message: string;
    }>;
    platform?: string;
    requestPath?: string;
};

/**
 * @deprecated 请使用 createAmagiClient 替代
 */
declare const amagiClient: (options?: Options) => {
    startServer: (port?: number) => express.Application;
    getDouyinData: <T extends DouyinMethodType, M extends TypeMode>(methodType: T, options?: ExtendedDouyinOptions<T> & {
        typeMode?: M;
    }) => Promise<ApiResponse<ConditionalReturnType<DouyinDataOptionsMap[T]["data"], M>>>;
    getBilibiliData: <T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
        typeMode?: M;
    }) => Promise<ApiResponse<ConditionalReturnType<BilibiliDataOptionsMap[T]["data"], M>>>;
    getKuaishouData: <T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
        typeMode?: M;
    }) => Promise<ApiResponse<ConditionalReturnType<KuaishouDataOptionsMap[T]["data"], M>>>;
    douyin: {
        api: {
            getWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E" | "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E" | "\u5408\u8F91\u4F5C\u54C1\u6570\u636E" | "\u805A\u5408\u89E3\u6790";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork | DyImageAlbumWork | DySlidesWork, M>>>;
            getVideoWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyVideoWork, M>>>;
            getImageAlbumWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyImageAlbumWork, M>>>;
            getSlidesWorkInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u5408\u8F91\u4F5C\u54C1\u6570\u636E";
                aweme_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DySlidesWork, M>>>;
            getComments: <M extends TypeMode>(options: Omit<{
                methodType: "\u8BC4\u8BBA\u6570\u636E";
                aweme_id: string;
                number?: number;
                cursor?: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyWorkComments, M>>>;
            getCommentReplies: <M extends TypeMode>(options: Omit<{
                methodType: "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E";
                aweme_id: string;
                comment_id: string;
                number?: number;
                cursor?: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
            getUserProfile: <M extends TypeMode>(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
                sec_uid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyUserInfo, M>>>;
            getEmojiList: <M extends TypeMode>(options: Omit<{
                methodType: "Emoji\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyEmojiList, M>>>;
            getEmojiProList: <M extends TypeMode>(options: Omit<{
                methodType: "\u52A8\u6001\u8868\u60C5\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyEmojiProList, M>>>;
            getUserVideos: <M extends TypeMode>(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
                sec_uid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyUserPostVideos, M>>>;
            getMusicInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u97F3\u4E50\u6570\u636E";
                music_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyMusicWork, M>>>;
            getSuggestWords: <M extends TypeMode>(options: Omit<{
                methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
                query: string;
                number?: number;
                search_id?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DySuggestWords, M>>>;
            search: <M extends TypeMode>(options: Omit<{
                methodType: "\u70ED\u70B9\u8BCD\u6570\u636E" | "\u641C\u7D22\u6570\u636E";
                query: string;
                number?: number;
                search_id?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DySearchInfo, M>>>;
            getLiveRoomInfo: <M extends TypeMode>(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E" | "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E";
                sec_uid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<DyUserLiveVideos, M>>>;
        };
        sign: typeof douyinSign;
        douyinApiUrls: typeof douyinApiUrls;
    };
    bilibili: {
        api: {
            getVideoInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
                bvid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliOneWork, M>>>;
            getVideoStream: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
                avid: number;
                cid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliVideoPlayurlIsLogin | BiliBiliVideoPlayurlNoLogin, M>>>;
            getComments: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u8BC4\u8BBA\u6570\u636E";
                type: number;
                oid: string;
                number?: number;
                mode?: 0 | 1 | 2 | 3;
                pagination_str?: string;
                plat?: number;
                seek_rpid?: string;
                web_location?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliWorkComments, M>>>;
            getUserProfile: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
                host_mid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliUserProfile, M>>>;
            getUserDynamic: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
                host_mid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliUserDynamic, M>>>;
            getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "Emoji\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliEmojiList, M>>>;
            getBangumiInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E";
                season_id?: string;
                ep_id?: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoInfo, M>>>;
            getBangumiStream: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E";
                cid: number;
                ep_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliBangumiVideoPlayurlIsLogin | BiliBangumiVideoPlayurlNoLogin, M>>>;
            getDynamicInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
                dynamic_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicInfo, M>>>;
            getDynamicCard: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u52A8\u6001\u8BE6\u60C5\u6570\u636E" | "\u52A8\u6001\u5361\u7247\u6570\u636E";
                dynamic_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliDynamicCard, M>>>;
            getLiveRoomDetail: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
                room_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDetail, M>>>;
            getLiveRoomInitInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u76F4\u64AD\u95F4\u4FE1\u606F" | "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F";
                room_id: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliLiveRoomDef, M>>>;
            getLoginBasicInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u767B\u5F55\u57FA\u672C\u4FE1\u606F";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<any, M>>>;
            getLoginQrcode: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7533\u8BF7\u4E8C\u7EF4\u7801";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliNewLoginQrcode, M>>>;
            checkQrcodeStatus: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u4E8C\u7EF4\u7801\u72B6\u6001";
                qrcode_key: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliCheckQrcode, M>>>;
            getUserTotalPlayCount: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u7528\u6237\u4E3B\u9875\u6570\u636E" | "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E" | "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF";
                host_mid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliUserFullView, M>>>;
            convertAvToBv: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "AV\u8F6CBV";
                avid: number;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliAv2Bv, M>>>;
            convertBvToAv: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "BV\u8F6CAV";
                bvid: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<BiliBv2AV, M>>>;
        };
        sign: {
            wbi_sign: typeof wbi_sign;
            av2bv: typeof av2bv;
            bv2av: typeof bv2av;
        };
        bilibiliApiUrls: typeof bilibiliApiUrls;
    };
    kuaishou: {
        api: {
            getWorkInfo: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E";
                photoId: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<KsOneWork, M>>>;
            getComments: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "\u8BC4\u8BBA\u6570\u636E";
                photoId: string;
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<KsWorkComments, M>>>;
            getEmojiList: <M extends TypeMode = "loose">(options: Omit<{
                methodType: "Emoji\u6570\u636E";
            }, "methodType"> & {
                typeMode?: TypeMode;
            } & {
                typeMode?: M | undefined;
            }) => Promise<ApiResponse<ConditionalReturnType<KsEmojiList, M>>>;
        };
        kuaishouApiUrls: typeof kuaishouApiUrls;
    };
};
/** amagi 的构造函数类型 */
type AmagiConstructor = {
    new (options?: Options): ReturnType<typeof createAmagiClient>;
    (options?: Options): ReturnType<typeof createAmagiClient>;
    /** 抖音相关功能模块 (工具集) */
    douyin: typeof douyinUtils;
    /** B站相关功能模块 (工具集) */
    bilibili: typeof bilibiliUtils;
    /** 快手相关功能模块 (工具集) */
    kuaishou: typeof kuaishouUtils;
    /**
     * 快捷获取抖音数据
     * @param type - 请求数据类型
     * @param options - 请求参数，是一个对象
     * @param cookie - 有效的用户Cookie
     * @returns 返回接口的原始数据
     */
    getDouyinData: typeof getDouyinData;
    /**
     * 快捷获取B站数据
     * @param type - 请求数据类型
     * @param options - 请求参数，是一个对象
     * @param cookie - 有效的用户Cookie
     * @returns 返回接口的原始数据
     */
    getBilibiliData: typeof getBilibiliData;
    /**
     * 快捷获取快手数据
     * @param type - 请求数据类型
     * @param options - 请求参数，是一个对象
     * @param cookie - 有效的用户Cookie
     * @returns 返回接口的原始数据
     */
    getKuaishouData: typeof getKuaishouData;
};
/** After instantiation, it can interact with the specified platform API to quickly obtain data. */
declare const CreateApp: AmagiConstructor;
/** After instantiation, it can interact with the specified platform API to quickly obtain data. */
declare const Client: AmagiConstructor;
declare const amagi: AmagiConstructor;

export { type APIErrorType, ApiError, type ApiResponse, type BaseResponse, type BiliAv2Bv, type BiliBangumiVideoInfo, type BiliBangumiVideoPlayurlIsLogin, type BiliBangumiVideoPlayurlNoLogin, type BiliBiliVideoPlayurlNoLogin, type BiliBv2AV, type BiliCheckQrcode, type BiliDynamicCard, type BiliDynamicInfo, type BiliEmojiList, type BiliLiveRoomDef, type BiliLiveRoomDetail, type BiliNewLoginQrcode, type BiliOneWork, type BiliUserDynamic, type BiliUserFullView, type BiliUserProfile, type BiliVideoPlayurlIsLogin, type BiliWorkComments, type BilibiliAv2BvParams, BilibiliAv2BvParamsSchema, type BilibiliBangumiInfoParams, BilibiliBangumiInfoParamsSchema, type BilibiliBangumiStreamParams, BilibiliBangumiStreamParamsSchema, type BilibiliBv2AvParams, BilibiliBv2AvParamsSchema, type BilibiliCommentParams, BilibiliCommentParamsSchema, type BilibiliDataOptions, type BilibiliDataOptionsMap, type BilibiliDynamicParams, BilibiliDynamicParamsSchema, type BilibiliEmojiParams, BilibiliEmojiParamsSchema, type BilibiliLiveParams, BilibiliLiveParamsSchema, type BilibiliLoginParams, BilibiliLoginParamsSchema, type BilibiliMethodOptionsMap, type BilibiliMethodType, type BilibiliQrcodeParams, BilibiliQrcodeParamsSchema, type BilibiliQrcodeStatusParams, BilibiliQrcodeStatusParamsSchema, type BilibiliUserParams, BilibiliUserParamsSchema, BilibiliValidationSchemas, type BilibiliVideoDownloadParams, BilibiliVideoDownloadParamsSchema, type BilibiliVideoParams, BilibiliVideoParamsSchema, type BoundBilibiliApi, type BoundDouyinApi, type BoundKuaishouApi, type CookieConfig, CreateApp, type DouyinCommentParams, DouyinCommentParamsSchema, type DouyinCommentReplyParams, DouyinCommentReplyParamsSchema, type DouyinDataOptions, type DouyinDataOptionsMap, type DouyinEmojiListParams, DouyinEmojiListParamsSchema, type DouyinEmojiProParams, DouyinEmojiProParamsSchema, type DouyinLiveRoomParams, type DouyinMethodOptionsMap, type DouyinMethodType, type DouyinMusicParams, DouyinMusicParamsSchema, type DouyinQrcodeParams, DouyinQrcodeParamsSchema, type DouyinSearchParams, DouyinSearchParamsSchema, type DouyinUserParams, DouyinUserParamsSchema, DouyinValidationSchemas, type DouyinWorkParams, DouyinWorkParamsSchema, type DyEmojiList, type DyEmojiProList, type DyImageAlbumWork, type DyMusicWork, type DySearchInfo, type DySlidesWork, type DySuggestWords, type DyUserInfo, type DyUserLiveVideos, type DyUserPostVideos, type DyVideoWork, type DyWorkComments, type ErrorResponse, type KsEmojiList, type KsOneWork, type KsWorkComments, type KuaishouCommentParams, KuaishouCommentParamsSchema, type KuaishouDataOptions, type KuaishouDataOptionsMap, type KuaishouEmojiParams, KuaishouEmojiParamsSchema, type KuaishouMethodOptionsMap, type KuaishouMethodType, KuaishouValidationSchemas, type KuaishouVideoParams, KuaishouVideoParamsSchema, type NetworksConfigType, type OmitMethodType, type Options, type RequestConfig, type SuccessResponse, type TypeControl, ValidationError, amagi, amagiClient, av2bv, bilibili, bilibiliApiUrls, bilibiliErrorCodeMap, bilibiliUtils, bv2av, createAmagiClient, createBilibiliRoutes, createBoundBilibiliApi, createBoundDouyinApi, createBoundKuaishouApi, createDouyinRoutes, createErrorResponse, createKuaishouRoutes, createSuccessResponse, Client as default, douyin, douyinApiUrls, douyinSign, douyinUtils, fetchData, fetchResponse, getBilibiliData, getDouyinData, getHeadersAndData, getKuaishouData, handleError, httpLogger, kuaishou, kuaishouApiUrls, kuaishouUtils, logMiddleware, logger, qtparam, createBilibiliRoutes as registerBilibiliRoutes, createDouyinRoutes as registerDouyinRoutes, createKuaishouRoutes as registerKuaishouRoutes, validateBilibiliParams, validateDouyinParams, validateKuaishouParams, wbi_sign };
