import { BufferedSeekingInput } from "../BufferedSeekingInput.js"; //#region src/elements/EFMedia/videoTasks/ScrubInputCache.d.ts /** * Cache for scrub BufferedSeekingInput instances. * * For JIT media (segmented scrub tracks), caches by src + segment ID. * For Asset media (single-file scrub tracks), caches by URL so all segments * share the same BufferedSeekingInput instance. * * Uses promise deduplication to prevent race conditions when multiple * concurrent requests arrive for the same segment. */ declare class ScrubInputCache { #private; constructor(maxCacheSize?: number, maxUrlCacheSize?: number); /** * Get or create BufferedSeekingInput for a scrub segment. * * Uses promise deduplication to prevent race conditions when multiple * concurrent requests arrive for the same segment. * * @param src - The source URL of the video (required to distinguish between videos) * @param segmentId - The segment ID * @param createInputFn - Factory function to create the input * @param scrubUrl - Optional URL for single-file scrub tracks (all segments share same input) */ getOrCreateInput(src: string, segmentId: number, createInputFn: () => Promise, scrubUrl?: string): Promise; /** * Clear the entire cache (called when video changes). * Increments the generation counter so any in-flight promises resolved after * this call do not repopulate the cache with stale data from the old source. */ clear(): void; /** * Get cache statistics */ getStats(): { size: number; urlCacheSize: number; pendingCount: number; cacheKeys: string[]; }; } //#endregion export { ScrubInputCache }; //# sourceMappingURL=ScrubInputCache.d.ts.map