import type { VideoSample, VideoSampleSink } from 'mediabunny'; import { type LogLevel } from 'remotion'; export type VideoSampleWithoutDuration = Omit; export type KeyframeBank = { src: string; getFrameFromTimestamp: (timestamp: number, fps: number) => Promise; prepareForDeletion: (logLevel: LogLevel, reason: string) => { framesDeleted: number; }; deleteFramesBeforeTimestamp: ({ logLevel, timestampInSeconds }: { timestampInSeconds: number; logLevel: LogLevel; }) => void; hasTimestampInSecond: (timestamp: number, fps: number) => Promise; addFrame: (frame: VideoSample, logLevel: LogLevel) => void; getOpenFrameCount: () => { size: number; timestamps: number[]; }; getLastUsed: () => number; isBusy: () => boolean; canSatisfyTimestamp: (timestamp: number) => boolean; getRangeOfTimestamps: () => { firstTimestamp: number; lastTimestamp: number; } | null; }; export declare const makeKeyframeBank: ({ logLevel: parentLogLevel, src, videoSampleSink, initialTimestampRequest, }: { logLevel: "error" | "info" | "trace" | "verbose" | "warn"; src: string; videoSampleSink: VideoSampleSink; initialTimestampRequest: number; }) => Promise;