import { getMaxVideoCacheSize } from './max-cache-size'; export declare const getSafeWindowOfMonotonicity: (fps: number) => number; export declare const makeMediaCache: () => { sinkManager: { getSink: (src: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", credentials: RequestCredentials | undefined, requestInit: import("./request-init").MediaRequestInit | undefined) => Promise<{ getVideo: () => Promise; getAudio: (index: number | null) => Promise; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; isMatroska: boolean; getDuration: () => Promise; }>; dispose: () => void; }; keyframeManager: { requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: { timestamp: number; videoSampleSink: import("mediabunny").VideoSampleSink; src: string; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; fps: number; }) => Promise; getCacheStats: () => { count: number; totalSize: number; }; clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }; audioManager: { getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: { src: string; timeInSeconds: number; audioSampleSink: import("mediabunny").AudioSampleSink; isMatroska: boolean; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; }) => Promise<{ src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; }>; getCacheStats: () => { count: number; totalSize: number; }; getIteratorMostInThePast: () => { src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; } | null; logOpenFrames: () => void; deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; clearAll: () => void; dispose: () => void; }; getTotalCacheStats: () => { count: number; totalSize: number; }; isDisposed: () => boolean; queueFrameExtraction: (fn: () => T | Promise) => Promise; queueAudioExtraction: (fn: () => T | Promise) => Promise; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }; export type MediaCache = ReturnType; export declare const globalMediaCache: { sinkManager: { getSink: (src: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", credentials: RequestCredentials | undefined, requestInit: import("./request-init").MediaRequestInit | undefined) => Promise<{ getVideo: () => Promise; getAudio: (index: number | null) => Promise; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; isMatroska: boolean; getDuration: () => Promise; }>; dispose: () => void; }; keyframeManager: { requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: { timestamp: number; videoSampleSink: import("mediabunny").VideoSampleSink; src: string; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; fps: number; }) => Promise; getCacheStats: () => { count: number; totalSize: number; }; clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }; audioManager: { getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: { src: string; timeInSeconds: number; audioSampleSink: import("mediabunny").AudioSampleSink; isMatroska: boolean; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; }) => Promise<{ src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; }>; getCacheStats: () => { count: number; totalSize: number; }; getIteratorMostInThePast: () => { src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; } | null; logOpenFrames: () => void; deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; clearAll: () => void; dispose: () => void; }; getTotalCacheStats: () => { count: number; totalSize: number; }; isDisposed: () => boolean; queueFrameExtraction: (fn: () => T | Promise) => Promise; queueAudioExtraction: (fn: () => T | Promise) => Promise; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }; export declare const keyframeManager: { requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: { timestamp: number; videoSampleSink: import("mediabunny").VideoSampleSink; src: string; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; fps: number; }) => Promise; getCacheStats: () => { count: number; totalSize: number; }; clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }, audioManager: { getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: { src: string; timeInSeconds: number; audioSampleSink: import("mediabunny").AudioSampleSink; isMatroska: boolean; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; }) => Promise<{ src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; }>; getCacheStats: () => { count: number; totalSize: number; }; getIteratorMostInThePast: () => { src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; } | null; logOpenFrames: () => void; deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; clearAll: () => void; dispose: () => void; }, getTotalCacheStats: () => { count: number; totalSize: number; }; export declare const useRenderMediaCache: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => { sinkManager: { getSink: (src: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", credentials: RequestCredentials | undefined, requestInit: import("./request-init").MediaRequestInit | undefined) => Promise<{ getVideo: () => Promise; getAudio: (index: number | null) => Promise; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; isMatroska: boolean; getDuration: () => Promise; }>; dispose: () => void; }; keyframeManager: { requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: { timestamp: number; videoSampleSink: import("mediabunny").VideoSampleSink; src: string; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; fps: number; }) => Promise; getCacheStats: () => { count: number; totalSize: number; }; clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }; audioManager: { getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: { src: string; timeInSeconds: number; audioSampleSink: import("mediabunny").AudioSampleSink; isMatroska: boolean; actualMatroskaTimestamps: { observeTimestamp: (startTime: number) => void; getRealTimestamp: (observedTimestamp: number) => number | null; }; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; maxCacheSize: number; }) => Promise<{ src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; }>; getCacheStats: () => { count: number; totalSize: number; }; getIteratorMostInThePast: () => { src: string; getSamples: (ts: number, dur: number) => Promise; waitForCompletion: () => Promise; canSatisfyRequestedTime: (timestamp: number) => boolean; logOpenFrames: () => void; getCacheStats: () => { count: number; size: number; }; getLastUsed: () => number; prepareForDeletion: () => void; startTimestamp: number; clearBeforeThreshold: (threshold: number) => void; getOldestTimestamp: () => number; getNewestTimestamp: () => number | null; } | null; logOpenFrames: () => void; deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; clearAll: () => void; dispose: () => void; }; getTotalCacheStats: () => { count: number; totalSize: number; }; isDisposed: () => boolean; queueFrameExtraction: (fn: () => T | Promise) => Promise; queueAudioExtraction: (fn: () => T | Promise) => Promise; dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void; }; export { getMaxVideoCacheSize }; export declare const useMaxMediaCacheSize: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => number;