import { ChalkInstance } from 'chalk';
import express, { RequestHandler, Request, Router } from 'express';
import { AxiosRequestConfig, AxiosResponse } from 'axios';

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: number;
        /**
         * 获取的评论数量，默认20
         * @defaultValue 20
         */
        number?: number;
        /**
         * 评论区页码，默认1
         * @defaultValue 1
         */
        pn?: number;
    };
    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;
    };
}
/** B站API接口参数类型 */
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 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;
    };
}
/** 抖音API接口参数类型 */
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 KuaishouMethodOptionsMap {
    VideoInfoParams: {
        methodType: '单个视频作品数据';
        /** 作品ID */
        photoId: string;
    };
    CommentParams: {
        methodType: '评论数据';
        /** 作品ID */
        photoId: string;
    };
    EmojiListParams: {
        methodType: 'Emoji数据';
    };
}
/** 快手API接口参数类型 */
interface KuaishouDataOptionsMap {
    单个视频作品数据: {
        opt: KuaishouMethodOptionsMap['VideoInfoParams'];
        data: KsOneWork;
    };
    评论数据: {
        opt: KuaishouMethodOptionsMap['CommentParams'];
        data: KsWorkComments;
    };
    Emoji数据: {
        opt: KuaishouMethodOptionsMap['EmojiListParams'];
        data: KsEmojiList;
    };
}

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"
}

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$1;
    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$1 = {
    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$1;
    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$1 = {
    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;
    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 = {
    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;
    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 = {
    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$i;
    extra: UserLiveVideosExtra;
    status_code: number;
    [property: string]: any;
};
type Data$i = {
    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;
    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 = {
    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;
    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 = {
    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$h;
    message: string;
    [property: string]: any;
};
type Data$h = {
    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$g;
    message: string;
    [property: string]: any;
};
type Data$g = {
    aid: string;
    [property: string]: any;
};

type BiliDynamicCard = {
    code: number;
    data: Data$f;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$f = {
    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$e;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$e = {
    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$d;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$d = {
    packages: Package[];
    setting: Setting;
    [property: string]: any;
};
type Package = {
    attr: number;
    emote: Emote[];
    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 = {
    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$c;
    message: string;
    msg: string;
    [property: string]: any;
};
type Data$c = {
    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$b;
    message: string;
    msg: string;
    [property: string]: any;
};
type Data$b = {
    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 = {
    data: CheckQrcodeData;
    headers: Headers;
    [property: string]: any;
};
type CheckQrcodeData = {
    code: number;
    data: DataData;
    message: string;
    ttl: number;
    [property: string]: any;
};
type DataData = {
    code: number;
    message: string;
    refresh_token: string;
    timestamp: number;
    url: string;
    [property: string]: any;
};
type Headers = {
    'bili-status-code': string;
    'bili-trace-id': string;
    'cache-control': string;
    connection: string;
    'content-type': string;
    cpu_usage: string;
    date: string;
    expires: string;
    'transfer-encoding': string;
    'x-bili-trace-id': string;
    'x-cache-webcdn': string;
    'x-ticket-status': string;
    [property: string]: any;
};

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

type BiliOneWork = {
    code: number;
    data: Data$9;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$9 = {
    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$1[];
    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$1 = {
    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$8;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$8 = {
    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$1;
    res_image: FluffyResImage$1;
    res_type: number;
    [property: string]: any;
};
type PurpleResAnimation$1 = {
    webp_src: PurpleWebpSrc$1;
    [property: string]: any;
};
type PurpleWebpSrc$1 = {
    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$1;
    is_fan: boolean;
    num_prefix: string;
    num_str: string;
    number: number;
    [property: string]: any;
};
type PurpleColorFormat$1 = {
    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$1;
    res_image: StickyResImage$1;
    res_type: number;
    [property: string]: any;
};
type FluffyResAnimation$1 = {
    webp_src: FluffyWebpSrc$1;
    [property: string]: any;
};
type FluffyWebpSrc$1 = {
    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$1;
    is_fan: boolean;
    num_prefix: string;
    num_str: string;
    number: number;
    [property: string]: any;
};
type FluffyColorFormat$1 = {
    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$7;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$7 = {
    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$6;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$6 = {
    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$5;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$5 = {
    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: Data$4;
    message: string;
    ttl: number;
    [property: string]: any;
};
type Data$4 = {
    assist: number;
    blacklist: number;
    config: Config;
    control: Control;
    folder: DataFolder;
    mode: number;
    page: Page;
    replies: DataReply[];
    support_mode: number[];
    top: null;
    upper: Upper;
    vote: number;
    [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 DataFolder = {
    has_folded: boolean;
    is_folded: boolean;
    rule: string;
    [property: string]: any;
};
type Page = {
    acount: number;
    count: number;
    num: number;
    size: number;
    [property: string]: any;
};
type DataReply = {
    action: number;
    assist: number;
    attr: number;
    card_label?: CardLabel[];
    content: PurpleContent;
    count: number;
    ctime: number;
    dialog: number;
    dialog_str: string;
    dynamic_id: number;
    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 CardLabel = {
    background?: string;
    background_height?: number;
    background_width?: number;
    effect?: number;
    effect_start_time?: number;
    image?: string;
    jump_url?: string;
    label_color_day?: string;
    label_color_night?: string;
    rpid?: number;
    text_color_day?: string;
    text_color_night?: string;
    text_content?: string;
    type?: number;
    [property: string]: any;
};
type PurpleContent = {
    emote?: PurpleEmote;
    jump_url: Jumpurl;
    max_line: number;
    members: string[];
    message: string;
    picture_scale?: number;
    pictures?: Picture[];
    [property: string]: any;
};
type PurpleEmote = {
    '[doge]'?: PurpleDoge;
    '[吃瓜]'?: 吃瓜;
    '[哦呼]'?: 哦呼;
    '[喜极而泣]'?: Purple喜极而泣;
    '[嗑瓜子]'?: 嗑瓜子;
    '[星星眼]'?: 星星眼;
    '[滑稽]'?: 滑稽;
    '[给心心]'?: Purple给心心;
    '[脱单doge]': Purple脱单Doge;
    [property: string]: any;
};
type PurpleDoge = {
    attr: number;
    id: number;
    jump_title: string;
    meta: PurpleMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type PurpleMeta = {
    size: number;
    suggest: string[];
    [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 哦呼 = {
    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 Purple喜极而泣 = {
    attr: number;
    id: number;
    jump_title: string;
    meta: FluffyMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type FluffyMeta = {
    size: number;
    suggest: string[];
    [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 星星眼 = {
    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 滑稽 = {
    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 Purple给心心 = {
    attr: number;
    id: number;
    jump_title: string;
    meta: TentacledMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type TentacledMeta = {
    size: number;
    suggest: string[];
    [property: string]: any;
};
type Purple脱单Doge = {
    attr: number;
    id: number;
    jump_title: string;
    meta: StickyMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type StickyMeta = {
    size: number;
    suggest: string[];
    [property: string]: any;
};
type Jumpurl = {
    一一风荷举: 一一风荷举;
    燎沉香: 燎沉香;
    [property: string]: any;
};
type 一一风荷举 = {
    app_name: string;
    app_package_name: string;
    app_url_schema: string;
    click_report: string;
    exposure_report: string;
    extra: 一一风荷举_Extra;
    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 一一风荷举_Extra = {
    goods_click_report: string;
    goods_cm_control: number;
    goods_exposure_report: string;
    goods_show_type: number;
    is_word_search: boolean;
    [property: string]: any;
};
type 燎沉香 = {
    app_name: string;
    app_package_name: string;
    app_url_schema: string;
    click_report: string;
    exposure_report: string;
    extra: 燎沉香_Extra;
    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 燎沉香_Extra = {
    goods_click_report: string;
    goods_cm_control: number;
    goods_exposure_report: string;
    goods_show_type: number;
    is_word_search: boolean;
    [property: string]: any;
};
type Picture = {
    img_height: number;
    img_size: number;
    img_src: string;
    img_width: number;
    play_gif_thumbnail: boolean;
    top_right_icon: 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 | FansDetail;
    is_contractor: boolean;
    is_senior_member: number;
    level_info: PurpleLevelInfo;
    mid: string;
    nameplate: PurpleNameplate;
    nft_interaction: null | NftInteraction;
    official_verify: PurpleOfficialVerify;
    pendant: PurplePendant;
    rank: string;
    senior: PurpleSenior;
    sex: string;
    sign: string;
    uname: string;
    user_sailing: UserSailing;
    user_sailing_v2: UserSailingV2;
    vip: PurpleVip;
    [property: string]: any;
};
type PurpleAvatarItem = {
    container_size: PurpleContainerSize;
    fallback_layers: PurpleFallbackLayers;
    layers?: FluffyLayer[];
    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;
    width: 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;
    };
    PENDENT_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_animation?: PurpleResAnimation;
    res_image: PurpleResImage;
    res_type: number;
    [property: string]: any;
};
type PurpleResAnimation = {
    webp_src: PurpleWebpSrc;
    [property: string]: any;
};
type PurpleWebpSrc = {
    placeholder: number;
    remote: PurpleRemote;
    src_type: number;
    [property: string]: any;
};
type PurpleRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type PurpleResImage = {
    image_src: PurpleImageSrc;
    [property: string]: any;
};
type PurpleImageSrc = {
    local?: number;
    placeholder: number;
    remote: FluffyRemote;
    src_type: number;
    [property: string]: any;
};
type FluffyRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyLayer = {
    is_critical_group: boolean;
    layers: TentacledLayer[];
    [property: string]: any;
};
type TentacledLayer = {
    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;
    width: 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;
    };
    PENDENT_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_animation?: FluffyResAnimation;
    res_image: FluffyResImage;
    res_type: number;
    [property: string]: any;
};
type FluffyResAnimation = {
    webp_src: FluffyWebpSrc;
    [property: string]: any;
};
type FluffyWebpSrc = {
    remote: TentacledRemote;
    src_type: number;
    [property: string]: any;
};
type TentacledRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FluffyResImage = {
    image_src: FluffyImageSrc;
    [property: string]: any;
};
type FluffyImageSrc = {
    placeholder: number;
    remote: StickyRemote;
    src_type: number;
    [property: string]: any;
};
type StickyRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type FansDetail = {
    guard_icon: string;
    guard_level: number;
    honor_icon: string;
    intimacy: number;
    is_receive: number;
    level: number;
    master_status: number;
    medal_color: number;
    medal_color_border: number;
    medal_color_end: number;
    medal_color_level: number;
    medal_color_name: number;
    medal_id: number;
    medal_level_bg_color: number;
    medal_name: string;
    score: number;
    uid: number;
    [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 NftInteraction = {
    region: Region;
    [property: string]: any;
};
type Region = {
    icon: string;
    show_status: number;
    type: 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 PurpleSenior = {
    status: number;
    [property: string]: any;
};
type UserSailing = {
    cardbg: null | Cardbg;
    cardbg_with_focus: null;
    pendant: null | PendantPendant;
    [property: string]: any;
};
type Cardbg = {
    fan: CardbgFan;
    id: number;
    image: string;
    image_group: null;
    jump_url: string;
    name: string;
    type: string;
    [property: string]: any;
};
type CardbgFan = {
    color: string;
    color_format: PurpleColorFormat;
    is_fan: number;
    name: string;
    num_desc: string;
    num_prefix: string;
    number: number;
    [property: string]: any;
};
type PurpleColorFormat = {
    colors: string[];
    end_point: string;
    gradients: number[];
    start_point: string;
    [property: string]: any;
};
type PendantPendant = {
    id: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    jump_url: string;
    name: string;
    type: string;
    [property: string]: any;
};
type UserSailingV2 = {
    card_bg: CardBg;
    pendant: UserSailingV2Pendant;
    [property: string]: any;
};
type CardBg = {
    fan: CardBgFan;
    id: number;
    image: string;
    jump_url: string;
    name: string;
    type: string;
    [property: string]: any;
};
type CardBgFan = {
    color: string;
    color_format: FluffyColorFormat;
    is_fan: number;
    name: string;
    num_desc: string;
    num_prefix: string;
    number: number;
    [property: string]: any;
};
type FluffyColorFormat = {
    colors: string[];
    end_point: string;
    gradients: number[];
    start_point: string;
    [property: string]: any;
};
type UserSailingV2Pendant = {
    id: number;
    image: string;
    image_enhance: string;
    image_enhance_frame: string;
    name: string;
    type: string;
    [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 = {
    at_name_to_mid?: AtNameToMid;
    at_name_to_mid_str?: AtNameToMidStr;
    emote?: FluffyEmote;
    jump_url: {
        [key: string]: any;
    };
    max_line: number;
    members: MemberElement[];
    message: string;
    topics_meta?: TopicsMeta;
    [property: string]: any;
};
type AtNameToMid = {
    gowara?: number;
    大吉的顶焦度计: number;
    新乃夜?: number;
    无氵硫酸铜?: number;
    砂之祈愿?: number;
    [property: string]: any;
};
type AtNameToMidStr = {
    gowara?: string;
    大吉的顶焦度计: string;
    新乃夜?: string;
    无氵硫酸铜?: string;
    砂之祈愿?: string;
    [property: string]: any;
};
type FluffyEmote = {
    '[doge]'?: FluffyDoge;
    '[保卫萝卜_笔芯]'?: 保卫萝卜_笔芯;
    '[初音未来_大笑]'?: 初音未来_大笑;
    '[喜极而泣]'?: Fluffy喜极而泣;
    '[妙啊]'?: 妙啊;
    '[崩坏：星穹铁道_震惊]'?: 崩坏星穹铁道_震惊;
    '[思考]'?: 思考;
    '[惊讶]'?: 惊讶;
    '[打call]'?: 打Call;
    '[笑哭]'?: 笑哭;
    '[给心心]'?: Fluffy给心心;
    '[胜利]'?: 胜利;
    '[脱单doge]': Fluffy脱单Doge;
    '[脸红]'?: 脸红;
    [property: string]: any;
};
type FluffyDoge = {
    attr: number;
    id: number;
    jump_title: string;
    meta: IndigoMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type IndigoMeta = {
    size: number;
    suggest: string[];
    [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 初音未来_大笑 = {
    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 Fluffy喜极而泣 = {
    attr: number;
    id: number;
    jump_title: string;
    meta: IndecentMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type IndecentMeta = {
    size: number;
    suggest: string[];
    [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 崩坏星穹铁道_震惊 = {
    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 思考 = {
    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 惊讶 = {
    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 打Call = {
    attr: number;
    id: number;
    jump_title: string;
    meta: 打CallMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type 打CallMeta = {
    size: number;
    suggest: string[];
    [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 Fluffy给心心 = {
    attr: number;
    id: number;
    jump_title: string;
    meta: HilariousMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type HilariousMeta = {
    size: number;
    suggest: string[];
    [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 Fluffy脱单Doge = {
    attr: number;
    id: number;
    jump_title: string;
    meta: AmbitiousMeta;
    mtime: number;
    package_id: number;
    state: number;
    text: string;
    type: number;
    url: string;
    [property: string]: any;
};
type AmbitiousMeta = {
    size: number;
    suggest: string[];
    [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 MemberElement = {
    avatar: string;
    face_nft_new: number;
    is_senior_member: number;
    level_info: FluffyLevelInfo;
    mid: string;
    nameplate: FluffyNameplate;
    official_verify: FluffyOfficialVerify;
    pendant: FluffyPendant;
    rank: string;
    senior: {
        [key: string]: any;
    };
    sex: string;
    sign: string;
    uname: string;
    vip: FluffyVip;
    [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 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 TopicsMeta = {
    '34;完全治龙&': The34完全治龙;
    [property: string]: any;
};
type The34完全治龙 = {
    uri: 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: TentacledLevelInfo;
    mid: string;
    nameplate: TentacledNameplate;
    nft_interaction: null;
    official_verify: TentacledOfficialVerify;
    pendant: TentacledPendant;
    rank: string;
    senior: FluffySenior;
    sex: string;
    sign: string;
    uname: string;
    user_sailing: null;
    vip: TentacledVip;
    [property: string]: any;
};
type FluffyAvatarItem = {
    container_size: FluffyContainerSize;
    fallback_layers: FluffyFallbackLayers;
    layers?: IndigoLayer[];
    mid: string;
    [property: string]: any;
};
type FluffyContainerSize = {
    height: number;
    width: number;
    [property: string]: any;
};
type FluffyFallbackLayers = {
    is_critical_group: boolean;
    layers: StickyLayer[];
    [property: string]: any;
};
type StickyLayer = {
    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;
    width: 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;
    };
    PENDENT_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 = {
    placeholder: number;
    remote: IndigoRemote;
    src_type: number;
    [property: string]: any;
};
type IndigoRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type IndigoLayer = {
    is_critical_group: boolean;
    layers: IndecentLayer[];
    [property: string]: any;
};
type IndecentLayer = {
    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;
    width: 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;
    };
    PENDENT_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_animation?: TentacledResAnimation;
    res_image: StickyResImage;
    res_type: number;
    [property: string]: any;
};
type TentacledResAnimation = {
    webp_src: TentacledWebpSrc;
    [property: string]: any;
};
type TentacledWebpSrc = {
    remote: IndecentRemote;
    src_type: number;
    [property: string]: any;
};
type IndecentRemote = {
    bfs_style: string;
    url: string;
    [property: string]: any;
};
type StickyResImage = {
    image_src: StickyImageSrc;
    [property: string]: any;
};
type StickyImageSrc = {
    placeholder: number;
    remote: HilariousRemote;
    src_type: number;
    [property: string]: any;
};
type HilariousRemote = {
    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 FluffySenior = {
    status: number;
    [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 PurpleReplyControl = {
    location: string;
    max_line: number;
    time_desc: string;
    [property: string]: any;
};
type PurpleUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type FluffyReplyControl = {
    biz_scene?: string;
    following?: boolean;
    is_note_v2?: boolean;
    location: string;
    max_line: number;
    sub_reply_entry_text: string;
    sub_reply_title_text: string;
    time_desc: string;
    [property: string]: any;
};
type FluffyUpAction = {
    like: boolean;
    reply: boolean;
    [property: string]: any;
};
type Upper = {
    mid: number;
    top: null;
    vote: null;
    [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;
};

/** 定义一个泛型类型 OmitMethodType<T>，从类型 T 中排除 'methodType' 属性 */
type OmitMethodType<T> = Omit<T, 'methodType'>;
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>;
/**
 * 类型精度控制参数
 */
type TypeControl = {
    /**
     * 获取返回类型
     * 类型定义时间：2025-02-02
     *
     * 类型解析模式：
     * - `strict`: 返回严格类型（基于接口响应定义，随时间推移可能缺少未声明的字段）
     * - `loose` 或 `未指定`: 返回宽松的 any 类型（默认）
     *
     * @default 'loose'
     */
    typeMode?: 'strict' | 'loose';
};

/**
 * 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;
};

/**
 * 快捷获取抖音数据
 * @param type - 请求数据类型
 * @param cookie - 有效的用户Cookie
 * @param options - 请求参数，是一个对象
 * @returns 返回接口的原始数据
 */
declare function getDouyinData<T extends keyof DouyinDataOptionsMap, R extends 'strict' | 'loose'>(type: T, cookie: string, options?: DouyinDataOptions<T> & {
    typeMode?: R;
}): Promise<R extends 'strict' ? DouyinDataOptionsMap[T]['data'] : any>;
/**
 * 快捷获取抖音数据
 * @param type - 请求数据类型
 * @param options - 请求参数，是一个对象
 * @param cookie - 有效的用户Cookie
 * @returns 返回接口的原始数据
 */
declare function getDouyinData<T extends keyof DouyinDataOptionsMap, R extends 'strict' | 'loose'>(type: T, options?: DouyinDataOptions<T> & {
    typeMode?: R;
}, cookie?: string): Promise<R extends 'strict' ? DouyinDataOptionsMap[T]['data'] : any>;
/**
 * 快捷获取B站数据
 * @param type - 请求数据类型
 * @param cookie - 有效的用户Cookie
 * @param options - 请求参数，是一个对象
 * @returns 返回接口的原始数据
 */
declare function getBilibiliData<T extends keyof BilibiliDataOptionsMap, R extends 'strict' | 'loose'>(methodType: T, cookie?: string, options?: BilibiliDataOptions<T> & {
    typeMode?: R;
}): Promise<R extends 'strict' ? BilibiliDataOptionsMap[T]['data'] : any>;
/**
 * 快捷获取B站数据
 * @param type - 请求数据类型
 * @param options - 请求参数，是一个对象
 * @param cookie - 有效的用户Cookie
 * @returns 返回接口的原始数据
 */
declare function getBilibiliData<T extends keyof BilibiliDataOptionsMap, R extends 'strict' | 'loose'>(methodType: T, options?: BilibiliDataOptions<T> & {
    typeMode?: R;
}, cookie?: string): Promise<R extends 'strict' ? BilibiliDataOptionsMap[T]['data'] : any>;
/**
 * 快捷获取快手数据
 * @param type - 请求数据类型
 * @param cookie - 有效的用户Cookie
 * @param options - 请求参数，是一个对象
 * @returns 返回接口的原始数据
 */
declare function getKuaishouData<T extends keyof KuaishouDataOptionsMap, R extends 'strict' | 'loose'>(methodType: T, cookie?: string, options?: KuaishouDataOptions<T> & {
    typeMode?: R;
}): Promise<R extends 'strict' ? KuaishouDataOptionsMap[T]['data'] : any>;
/**
 * 快捷获取快手数据
 * @param type - 请求数据类型
 * @param options - 请求参数，是一个对象
 * @param cookie - 有效的用户Cookie
 * @returns 返回接口的原始数据
 */
declare function getKuaishouData<T extends keyof KuaishouDataOptionsMap, R extends 'strict' | 'loose'>(methodType: T, options?: KuaishouDataOptions<T> & {
    typeMode?: R;
}, cookie?: string): Promise<R extends 'strict' ? KuaishouDataOptionsMap[T]['data'] : any>;
declare const fetchDouyinData: typeof getDouyinData;
declare const fetchBilibiliData: typeof getBilibiliData;
declare const fetchKuaishouData: typeof getKuaishouData;

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;

interface HeadersObject {
    [key: string]: string;
}
declare class Networks {
    url: string;
    method: string;
    headers: HeadersObject;
    type: string;
    body?: any;
    axiosInstance: any;
    isGetResult: boolean;
    timeout: number;
    timer: NodeJS.Timeout | undefined;
    data: object;
    constructor(data: NetworksConfigType);
    get config(): AxiosRequestConfig;
    getfetch(): Promise<AxiosResponse | boolean>;
    returnResult(): Promise<AxiosResponse>;
    /** 最终地址（跟随重定向） */
    getLongLink(): Promise<string>;
    /** 获取首个302 */
    getLocation(): Promise<string>;
    /** 获取数据并处理数据的格式化，默认json */
    getData(new_fetch?: string): Promise<any | boolean>;
    getHeadersAndData(): Promise<{
        headers: any;
        data: any;
    }>;
}

/**
 * 参数检查
 * @param data - 参数对象
 * @param fields - 要对data进行检查的字段
 * @param atLeastOne - 是否至少有一个字段存在即可通过检查，默认为false
 */
declare const DouyinValidateData: <T extends keyof DouyinDataOptionsMap>(data: DouyinDataOptionsMap[T]["opt"], // 根据 methodType 动态关联 opt 类型
fields: (keyof Omit<DouyinDataOptionsMap[T]["opt"], "methodType" | "typeMode">)[], atLeastOne?: boolean) => void;
/**
 * 参数检查
 * @param data - 参数对象
 * @param fields - 要对data进行检查的字段
 * @param atLeastOne - 是否至少有一个字段存在即可通过检查，默认为false
 */
declare const BilibiliValidateData: <T extends keyof BilibiliDataOptionsMap>(data: BilibiliDataOptionsMap[T]["opt"], // 根据 methodType 动态关联 opt 类型
fields: (keyof Omit<BilibiliDataOptionsMap[T]["opt"], "methodType" | "typeMode">)[], atLeastOne?: boolean) => void;
/**
 * 参数检查
 * @param data - 参数对象
 * @param fields - 要对data进行检查的字段
 * @param atLeastOne - 是否至少有一个字段存在即可通过检查，默认为false
 */
declare const KusiahouValidateData: <T extends keyof KuaishouDataOptionsMap>(data: KuaishouDataOptionsMap[T]["opt"], // 根据 methodType 动态关联 opt 类型
fields: (keyof Omit<KuaishouDataOptionsMap[T]["opt"], "methodType" | "typeMode">)[], atLeastOne?: boolean) => void;

/**
 * 从 BilibiliMethodOptionsMap 中提取特定 API 的选项类型，并移除 methodType，添加 TypeControl。
 * @template K - BilibiliMethodOptionsMap 中的键名。
 */
type BilibiliApiOptions<K extends keyof BilibiliMethodOptionsMap> = Omit<BilibiliMethodOptionsMap[K], 'methodType'> & TypeControl;
/**
 * 根据传入的选项中的 typeMode 决定 Bilibili API 的返回类型。
 * @template K - BilibiliDataOptionsMap 中的键名。
 * @template T - 包含可选 typeMode 的选项对象。
 */
type BilibiliApiReturn<K extends keyof BilibiliDataOptionsMap, T extends TypeControl> = T['typeMode'] extends 'strict' ? BilibiliDataOptionsMap[K]['data'] : any;
/**
 * B站相关 API 的命名空间。
 *
 * 部分接口可能不需要 Cookie 但建议传递有效的用户 Cookie，以获取更多数据。
 *
 * 提供了一系列方法，用于与B站相关的 API 进行交互。
 *
 * 每个方法都接受参数和 Cookie，返回 Promise，解析为接口返回的原始数据。
 */
declare const bilibili: {
    /**
     * 获取单个视频作品数据
     * @param options 请求参数，包含 bvid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getVideoInfo: <T extends BilibiliApiOptions<"VideoInfoParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", T>>;
    /**
     * 获取单个视频下载信息数据
     * @param options 请求参数，包含 avid, cid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getVideoStream: <T extends BilibiliApiOptions<"VideoStreamParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", T>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 type, oid, 可选的 number, pn 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getComments: <T extends BilibiliApiOptions<"CommentParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u8BC4\u8BBA\u6570\u636E", T>>;
    /**
     * 获取用户主页数据
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getUserProfile: <T extends BilibiliApiOptions<"UserParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u7528\u6237\u4E3B\u9875\u6570\u636E", T>>;
    /**
     * 获取用户主页动态列表数据
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getUserDynamic: <T extends BilibiliApiOptions<"UserParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E", T>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getEmojiList: <T extends BilibiliApiOptions<"EmojiParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"Emoji\u6570\u636E", T>>;
    /**
     * 获取番剧基本信息数据
     * @param options 请求参数，包含可选的 season_id, ep_id 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getBangumiInfo: <T extends BilibiliApiOptions<"BangumiInfoParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E", T>>;
    /**
     * 获取番剧下载信息数据
     * @param options 请求参数，包含 cid, ep_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getBangumiStream: <T extends BilibiliApiOptions<"BangumiStreamParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", T>>;
    /**
     * 获取动态详情数据
     * @param options 请求参数，包含 dynamic_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getDynamicInfo: <T extends BilibiliApiOptions<"DynamicParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u52A8\u6001\u8BE6\u60C5\u6570\u636E", T>>;
    /**
     * 获取动态卡片数据
     * @param options 请求参数，包含 dynamic_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getDynamicCard: <T extends BilibiliApiOptions<"DynamicParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u52A8\u6001\u5361\u7247\u6570\u636E", T>>;
    /**
     * 获取直播间信息
     * @param options 请求参数，包含 room_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getLiveRoomDetail: <T extends BilibiliApiOptions<"LiveRoomParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u76F4\u64AD\u95F4\u4FE1\u606F", T>>;
    /**
     * 获取直播间初始化信息
     * @param options 请求参数，包含 room_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getLiveRoomInitInfo: <T extends BilibiliApiOptions<"LiveRoomParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F", T>>;
    /**
     * 获取登录基本信息
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getLoginBasicInfo: <T extends BilibiliApiOptions<"LoginBaseInfoParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u767B\u5F55\u57FA\u672C\u4FE1\u606F", T>>;
    /**
     * 申请登录二维码
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getLoginQrcode: <T extends BilibiliApiOptions<"GetQrcodeParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u7533\u8BF7\u4E8C\u7EF4\u7801", T>>;
    /**
     * 检查二维码状态
     * @param options 请求参数，包含 qrcode_key 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    checkQrcodeStatus: <T extends BilibiliApiOptions<"QrcodeParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u4E8C\u7EF4\u7801\u72B6\u6001", T>>;
    /**
     * 获取 UP 主总播放量
     * @param options 请求参数，包含 host_mid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getUserTotalPlayCount: <T extends BilibiliApiOptions<"UserParams">>(options: T, cookie?: string) => Promise<BilibiliApiReturn<"\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF", T>>;
    /**
     * 将 AV 号转换为 BV 号
     * @param options 请求参数，包含 avid
     * @param cookie 有效的用户 Cookie (此接口通常不需要)
     * @returns 接口返回的原始数据
     */
    convertAvToBv: <T extends BilibiliApiOptions<"Av2BvParams">>(options: T, cookie?: string) => Promise<BilibiliDataOptionsMap["AV\u8F6CBV"]["data"]>;
    /**
     * 将 BV 号转换为 AV 号
     * @param options 请求参数，包含 bvid
     * @param cookie 有效的用户 Cookie (此接口通常不需要)
     * @returns 接口返回的原始数据
     */
    convertBvToAv: <T extends BilibiliApiOptions<"Bv2AvParams">>(options: T, cookie?: string) => Promise<BilibiliDataOptionsMap["BV\u8F6CAV"]["data"]>;
};

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 地址，需要手动请求该地址以获取数据
 * @deprecated 即将废弃，请使用 bilibiliApiUrls
 */
declare const bilibiliAPI: BiLiBiLiAPI;
/** 该类下的所有方法只会返回拼接好参数后的 Url 地址，需要手动请求该地址以获取数据 */
declare const bilibiliApiUrls: BiLiBiLiAPI;

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

/**
 * 对请求链接进行 wbi 签名
 * @param BASEURL 完整请求地址
 * @param cookie 有效的用户cookie
 * @returns
 */
declare function wbi_sign(BASEURL: string | URL, cookie: string): Promise<string>;

/**
 * 哔哩哔哩API官方HTTP请求错误码
 */
declare const bilibiliErrorCodeMap: {
    [key: string]: string;
};

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

interface BilibiliRequest<T extends keyof BilibiliDataOptionsMap> extends Request {
    query: {
        [K in keyof OmitMethodType<BilibiliDataOptionsMap[T]['opt']>]: string;
    };
}
/**
 * 注册B站相关的API接口路由
 * @param cookie - 有效的cookie
 */
declare const registerBilibiliRoutes: (cookie: string) => 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站数据
     * @param type - 请求数据类型
     * @param cookie - 有效的用户Cookie
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getBilibiliData: typeof getBilibiliData;
    /**
     * B站相关 API 的命名空间。
     *
     * 部分接口可能不需要 Cookie 但建议传递有效的用户 Cookie，以获取更多数据。
     *
     * 提供了一系列方法，用于与B站相关的 API 进行交互。
     *
     * 每个方法都接受参数和 Cookie，返回 Promise，解析为接口返回的原始数据。
     */
    api: typeof bilibili;
};
/** B站相关功能模块 (工具集) */
declare const bilibiliUtils: bilibiliUtilsModel;

/**
 * 从 DouyinMethodOptionsMap 中提取特定 API 的选项类型，并移除 methodType，添加 TypeControl。
 * @template K - DouyinMethodOptionsMap 中的键名。
 */
type DouyinApiOptions<K extends keyof DouyinMethodOptionsMap> = Omit<DouyinMethodOptionsMap[K], 'methodType'> & TypeControl;
/**
 * 根据传入的选项中的 typeMode 决定 Douyin API 的返回类型。
 * @template K - DouyinDataOptionsMap 中的键名。
 * @template T - 包含可选 typeMode 的选项对象。
 */
type DouyinApiReturn<K extends keyof DouyinDataOptionsMap, T extends TypeControl> = T['typeMode'] extends 'strict' ? DouyinDataOptionsMap[K]['data'] : any;
/**
 * 封装了所有抖音相关的API请求，采用对象化的方式组织。
 *
 * 提供了一系列方法，用于与抖音相关的 API 进行交互。
 *
 * 每个方法都接受参数和 Cookie，返回 Promise，解析为接口返回的原始数据。
 */
declare const douyin: {
    /**
     * 聚合解析 (视频/图集/合辑)
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getWorkInfo: <T extends DouyinApiOptions<"WorkParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u805A\u5408\u89E3\u6790", T>>;
    /**
     * 获取视频作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getVideoWorkInfo: <T extends DouyinApiOptions<"VideoWorkParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u89C6\u9891\u4F5C\u54C1\u6570\u636E", T>>;
    /**
     * 获取图集作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getImageAlbumWorkInfo: <T extends DouyinApiOptions<"ImageAlbumWorkParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", T>>;
    /**
     * 获取合辑作品数据
     * @param options 请求参数，包含 aweme_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getSlidesWorkInfo: <T extends DouyinApiOptions<"SlidesWorkParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u5408\u8F91\u4F5C\u54C1\u6570\u636E", T>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 aweme_id, 可选的 number, cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getComments: <T extends DouyinApiOptions<"CommentParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u8BC4\u8BBA\u6570\u636E", T>>;
    /**
     * 获取指定评论回复数据
     * @param options 请求参数，包含 aweme_id, comment_id, 可选的 number, cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getCommentReplies: <T extends DouyinApiOptions<"CommentReplyParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", T>>;
    /**
     * 获取用户主页数据
     * @param options 请求参数，包含 sec_uid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getUserProfile: <T extends DouyinApiOptions<"UserParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u7528\u6237\u4E3B\u9875\u6570\u636E", T>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 可选的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getEmojiList: <T extends DouyinApiOptions<"EmojiListParams">>(options: T, cookie?: string) => Promise<DouyinApiReturn<"Emoji\u6570\u636E", T>>;
    /**
     * 获取动态表情数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getEmojiProList: <T extends DouyinApiOptions<"EmojiProParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u52A8\u6001\u8868\u60C5\u6570\u636E", T>>;
    /**
     * 获取用户主页视频列表数据
     * @param options 请求参数，包含 sec_uid, 可选的 number, max_cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getUserVideos: <T extends DouyinApiOptions<"UserParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", T>>;
    /**
     * 获取音乐数据
     * @param options 请求参数，包含 music_id 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getMusicInfo: <T extends DouyinApiOptions<"MusicParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u97F3\u4E50\u6570\u636E", T>>;
    /**
     * 获取热点词数据
     * @param options 请求参数，包含 query, 可选的 number 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getSuggestWords: <T extends DouyinApiOptions<"SearchParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u70ED\u70B9\u8BCD\u6570\u636E", T>>;
    /**
     * 获取搜索数据
     * @param options 请求参数，包含 query, 可选的 number, search_id, cursor 和 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    search: <T extends DouyinApiOptions<"SearchParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u641C\u7D22\u6570\u636E", T>>;
    /**
     * 获取直播间信息
     * @param options 请求参数，包含 sec_uid 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getLiveRoomInfo: <T extends DouyinApiOptions<"UserParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", T>>;
    /**
     * 申请二维码数据
     * @param options 请求参数，包含 verify_fp 和可选的 typeMode
     * @param cookie 有效的用户 Cookie
     * @returns 接口返回的原始数据 (any)
     */
    getLoginQrcode: <T extends DouyinApiOptions<"QrcodeParams">>(options: T, cookie: string) => Promise<DouyinApiReturn<"\u7533\u8BF7\u4E8C\u7EF4\u7801\u6570\u636E", T>>;
};

type DouyinMethodOptionsWithoutMethodType = {
    [K in keyof DouyinMethodOptionsMap]: OmitMethodType<DouyinMethodOptionsMap[K]>;
};
declare class DouyinAPI {
    视频或图集(data: DouyinMethodOptionsWithoutMethodType['WorkParams']): string;
    评论(data: DouyinMethodOptionsWithoutMethodType['CommentParams']): string;
    二级评论(data: DouyinMethodOptionsWithoutMethodType['CommentReplyParams']): string;
    动图(data: DouyinMethodOptionsWithoutMethodType['WorkParams']): string;
    表情(): string;
    用户主页视频(data: DouyinMethodOptionsWithoutMethodType['UserParams']): string;
    用户主页信息(data: DouyinMethodOptionsWithoutMethodType['UserParams']): string;
    热点词(data: DouyinMethodOptionsWithoutMethodType['SearchParams']): string;
    搜索(data: DouyinMethodOptionsWithoutMethodType['SearchParams']): string;
    互动表情(): string;
    背景音乐(data: DouyinMethodOptionsWithoutMethodType['MusicParams']): string;
    直播间信息(data: DouyinMethodOptionsWithoutMethodType['LiveRoomParams']): string;
    申请二维码(data: DouyinMethodOptionsWithoutMethodType['QrcodeParams']): string;
}
/**
 * 该类下的所有方法只会返回拼接好参数后的 Url 地址，需要手动请求该地址以获取数据
 *
 * 缺少 `a_bougs` 参数，请自行生成拼接
 * @deprecated 即将废弃，请使用 douyinApiUrls
 */
declare const douyinAPI: DouyinAPI;
/**
 * 该类下的所有方法只会返回拼接好参数后的 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): string;
    /** 生成一个唯一的验证字符串 */
    static VerifyFpManager(): string;
}

interface DouyinRequest<T extends keyof DouyinDataOptionsMap> extends Request {
    query: {
        [K in keyof OmitMethodType<DouyinDataOptionsMap[T]['opt']>]: string;
    };
}
/**
 * 注册抖音相关的API接口路由
 * @param cookie - 有效的cookie
 */
declare const registerDouyinRoutes: (cookie: string) => Router;

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

/**
 * 从 KuaishouMethodOptionsMap 中提取特定 API 的选项类型，并移除 methodType，添加 TypeControl。
 * @template K - KuaishouMethodOptionsMap 中的键名。
 */
type KuaishouApiOptions<K extends keyof KuaishouMethodOptionsMap> = Omit<KuaishouMethodOptionsMap[K], 'methodType'> & TypeControl;
/**
 * 根据传入的选项中的 typeMode 决定 Kuaishou API 的返回类型。
 * @template K - KuaishouDataOptionsMap 中的键名。
 * @template T - 包含可选 typeMode 的选项对象。
 */
type KuaishouApiReturn<K extends keyof KuaishouDataOptionsMap, T extends TypeControl> = T['typeMode'] extends 'strict' ? KuaishouDataOptionsMap[K]['data'] : any;
/**
 * 快手相关 API 的命名空间。
 */
declare const kuaishou: {
    /**
     * 获取单个视频作品数据
     * @param options 请求参数，包含 photoId 和可选的 typeMode
     * @param cookie 可选的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getWorkInfo: <T extends KuaishouApiOptions<"VideoInfoParams">>(options: T, cookie?: string) => Promise<KuaishouApiReturn<"\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", T>>;
    /**
     * 获取评论数据
     * @param options 请求参数，包含 photoId 和可选的 typeMode
     * @param cookie 可选的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getComments: <T extends KuaishouApiOptions<"CommentParams">>(options: T, cookie?: string) => Promise<KuaishouApiReturn<"\u8BC4\u8BBA\u6570\u636E", T>>;
    /**
     * 获取 Emoji 数据
     * @param options 可选的请求参数 (主要用于 typeMode)
     * @param cookie 可选的用户 Cookie
     * @returns 接口返回的原始数据
     */
    getEmojiList: <T extends KuaishouApiOptions<"EmojiListParams">>(options: T, cookie?: string) => Promise<KuaishouApiReturn<"Emoji\u6570\u636E", T>>;
};

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 地址和请求体，需要手动请求该地址以获取数据
 * @deprecated: 即将废弃，请使用 kuaishouAPI 代替
 */
declare const KuaishouAPI: API;
/**
 * 该类下的所有方法只会返回拼接好参数后的 Url 地址和请求体，需要手动请求该地址以获取数据
 * @deprecated 即将废弃，请使用 kuaishouApiUrls
 */
declare const kuaishouAPI: API;
/** 该类下的所有方法只会返回拼接好参数后的 Url 地址和请求体，需要手动请求该地址以获取数据 */
declare const kuaishouApiUrls: API;

interface KusiahouRequest<T extends keyof KuaishouDataOptionsMap> extends Request {
    query: {
        [K in keyof OmitMethodType<KuaishouDataOptionsMap[T]['opt']>]: string;
    };
}
/**
 * 注册快手相关的API接口路由
 * @param cookie - 有效的cookie
 */
declare const registerKuaishouRoutes: (cookie: string) => Router;

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

type cookiesOptions = {
    /**
     * 抖音ck
     * @defaultValue ''
     */
    douyin?: string;
    /**
     * B站ck
     * @defaultValue ''
     */
    bilibili?: string;
    /**
     * 快手ck
     * @defaultValue ''
     */
    kuaishou?: string;
};
declare class amagiClient {
    #private;
    /**
     *
     * @param cookie - 包含抖音ck、B站ck、快手ck的对象
     */
    constructor(options: cookiesOptions);
    /**
     * 启动本地 HTTP 服务
     * @param port - 监听端口
     * @defaultValue `port` 4567
     * @returns Express 应用实例
     */
    startClient: (port?: number) => express.Application;
    /**
     * 快捷获取抖音数据
     * @param type - 请求数据类型
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getDouyinData: <T extends keyof DouyinDataOptionsMap, R extends "strict" | "loose">(methodType: T, options?: DouyinDataOptions<T> & {
        typeMode?: R;
    }) => Promise<R extends "strict" ? DouyinDataOptionsMap[T]["data"] : any>;
    /**
     * 快捷获取B站数据
     * @param type - 请求数据类型
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getBilibiliData: <T extends keyof BilibiliDataOptionsMap, R extends "strict" | "loose">(methodType: T, options?: BilibiliDataOptions<T> & {
        typeMode?: R;
    }) => Promise<R extends "strict" ? BilibiliDataOptionsMap[T]["data"] : any>;
    /**
     * 快捷获取快手数据
     * @param type - 请求数据类型
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getKuaishouData: <T extends keyof KuaishouDataOptionsMap, R extends "strict" | "loose">(methodType: T, options?: KuaishouDataOptions<T> & {
        typeMode?: R;
    }) => Promise<R extends "strict" ? KuaishouDataOptionsMap[T]["data"] : any>;
}

/** amagi 的构造函数类型 */
type AmagiConstructor = {
    new (options?: cookiesOptions): amagiClient;
    (options?: cookiesOptions): amagiClient;
    /** 抖音相关功能模块 (工具集) */
    douyin: typeof douyinUtils;
    /** B站相关功能模块 (工具集) */
    bilibili: typeof bilibiliUtils;
    /** 快手相关功能模块 (工具集) */
    kuaishou: typeof kuaishouUtils;
    /**
     * 快捷获取抖音数据
     * @param type - 请求数据类型
     * @param cookie - 有效的用户Cookie
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getDouyinData: typeof douyinUtils.getDouyinData;
    /**
     * 快捷获取B站数据
     * @param type - 请求数据类型
     * @param cookie - 有效的用户Cookie
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getBilibiliData: typeof bilibiliUtils.getBilibiliData;
    /**
     * 快捷获取快手数据
     * @param type - 请求数据类型
     * @param cookie - 有效的用户Cookie
     * @param options - 请求参数，是一个对象
     * @returns 返回接口的原始数据
     */
    getKuaishouData: typeof kuaishouUtils.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, 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 BilibiliDataOptions, type BilibiliDataOptionsMap, type BilibiliMethodOptionsMap, type BilibiliRequest, BilibiliValidateData, CreateApp, type DouyinDataOptions, type DouyinDataOptionsMap, type DouyinMethodOptionsMap, type DouyinRequest, DouyinValidateData, 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 KsEmojiList, type KsOneWork, type KsWorkComments, KuaishouAPI, type KuaishouDataOptions, type KuaishouDataOptionsMap, type KuaishouMethodOptionsMap, type KusiahouRequest, KusiahouValidateData, Networks, type NetworksConfigType, type OmitMethodType, type TypeControl, amagi, amagiClient, av2bv, bilibili, bilibiliAPI, bilibiliApiUrls, bilibiliErrorCodeMap, bilibiliUtils, bv2av, type cookiesOptions, Client as default, douyin, douyinAPI, douyinApiUrls, douyinSign, douyinUtils, fetchBilibiliData, fetchDouyinData, fetchKuaishouData, getBilibiliData, getDouyinData, getKuaishouData, httpLogger, kuaishou, kuaishouAPI, kuaishouApiUrls, kuaishouUtils, logMiddleware, logger, qtparam, registerBilibiliRoutes, registerDouyinRoutes, registerKuaishouRoutes, wbi_sign };
