export interface ImageUrls {
    preferred?: string;
    fallback: string;
}
export declare function loadImagesInBatchesById(logosUrls: Map<number, ImageUrls>, batchSize?: number, delay?: number): Promise<Map<number, HTMLImageElement>>;
/**
 * Loads a map of ids to image bytes. One URL loads at most once per call, no matter how many ids
 * share it.
 *
 * This dedup is not an optimization. It is a correctness requirement. The renderer dedupes image
 * sources by object identity, so two booths that share a logo must get the very same `Blob`
 * object. If they do not, the logo downloads twice, packs twice, and draws from two atlas
 * regions. The cache lives only for the length of this call, because the defs keep their own
 * Blobs afterward. A cache that outlived the call would give every logo on the plan a second
 * place to stay in memory.
 * @param logosUrls - The URLs to load, keyed by booth id.
 * @param batchSize - How many URLs to load at once.
 * @param delay - Milliseconds to wait between batches.
 * @returns The bytes, keyed by booth id. An id is absent when its logo failed to load.
 */
export declare function loadBlobsInBatchesById(logosUrls: Map<number, ImageUrls>, batchSize?: number, delay?: number): Promise<Map<number, Blob>>;
//# sourceMappingURL=loadImagesInBatches.d.ts.map