/** 以当前图片为中心,向后(下一张方向)预加载的张数 */ export declare const PRELOAD_FORWARD = 3; /** 以当前图片为中心,向前(上一张方向)预加载的张数 */ export declare const PRELOAD_BACKWARD = 2; /** 缓存的图片实例上限 */ export declare const PRELOAD_MAX_CACHE = 8; /** 同时进行的预加载请求上限,避免与主图争抢连接 */ export declare const PRELOAD_CONCURRENCY = 2; /** * 预加载原生 Image 以预热浏览器的 HTTP 缓存与解码结果, * 让 LabelMaker 里的 fabric.Image.fromURL 切图时能直接命中缓存。 * * 注意:crossOrigin 必须与 fabric.Image.fromURL 的 { crossOrigin: 'anonymous' } 保持一致, * 否则两次请求的 CORS 模式不同,浏览器会视为不同的缓存条目,预加载将完全失效。 */ export declare class ImagePreloader { /** 已加载完成的图片,插入顺序即淘汰顺序 */ private cache; /** 待加载队列,每次窗口滑动整体替换 */ private queue; private loading; private disposed; /** * 替换待加载队列。已缓存或正在加载的 url 会被跳过, * 上一轮尚未开始的目标会被丢弃,避免过期窗口占用并发额度。 */ setTargets(urls: string[]): void; /** * 清理不在 keep 列表内的缓存,并把剩余条目裁剪到上限以内。 */ pruneExcept(keep: string[]): void; /** * 释放全部缓存并放弃后续预加载。进行中的请求不主动中断 * (给 Image 赋空 src 在部分浏览器会退化成对当前页面地址的请求), * 它们完成后由 disposed 标记丢弃结果,只留下已预热的浏览器缓存。 */ dispose(): void; private pump; private load; }