/** * @file 小程序 Component 实现的工具函数 * @desc 提供如 uuid、log 等逻辑相关的辅助工具 */ import type CDNResolver from '../dns'; import { Job } from '../dns/common'; import Logger from '../log'; /** 媒体组件 error 事件 */ export declare class MediaError extends Error { name: string; } /** 对于自定义媒体组件实例的要求/假设 */ export type CompInstance = { properties: { /** 外部指定的资源 URL */ src: string; }; data: { /** 内部控制的真实资源 URL */ finalSrc: string; }; }; /** 获取自定义媒体组件的唯一 ID,如果没有,则会生成一个并与当前组件实例绑定 */ export declare function getUuid(comp: any): any; /** 回调函数,预期自定义媒体组件 attached 时被调用 */ export declare function onAttached(comp: CompInstance, type: string): Promise; export type Event = { type: string; detail: unknown; }; export type ErrorEventDetail = { errMsg: string | null; }; /** 回调函数,预期媒体组件中的原生媒体组件上有事件触发时被调用 */ export declare function onMediaEvent(comp: CompInstance, event: Event): Promise; /** 基于外部设置的 src 进行 ECDN 解析 & 调度 */ export declare function resolveSrc(comp: CompInstance, logger: Logger, resolver: CDNResolver, src: string, job: Job): Promise;