/**
 * @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<void>;
export type Event = {
    type: string;
    detail: unknown;
};
export type ErrorEventDetail = {
    errMsg: string | null;
};
/** 回调函数，预期媒体组件中的原生媒体组件上有事件触发时被调用 */
export declare function onMediaEvent(comp: CompInstance, event: Event): Promise<void>;
/** 基于外部设置的 src 进行 ECDN 解析 & 调度 */
export declare function resolveSrc(comp: CompInstance, logger: Logger, resolver: CDNResolver, src: string, job: Job): Promise<void>;
