import type { InputVideoTrack, WrappedCanvas } from 'mediabunny'; import type { EffectChainState, EffectDefinitionAndStack } from 'remotion'; import type { DelayPlaybackIfNotPremounting } from './delay-playback-if-not-premounting'; import type { Nonce } from './nonce-manager'; export declare const isSequentialMediaTimeAdvance: ({ previousTime, newTime, fps, playbackRate, isPlaying, }: { previousTime: number; newTime: number; fps: number; playbackRate: number; isPlaying: boolean; }) => boolean; export declare const videoIteratorManager: ({ delayPlaybackHandleIfNotPremounting, canvas, context, drawDebugOverlay, logLevel, getOnVideoFrameCallback, videoTrack, getLoopSegmentMediaEndTimestamp, getStartTime, getIsLooping, getEffects, getEffectChainState, }: { videoTrack: InputVideoTrack; delayPlaybackHandleIfNotPremounting: () => DelayPlaybackIfNotPremounting; context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D | null; canvas: HTMLCanvasElement | OffscreenCanvas | null; getOnVideoFrameCallback: () => ((frame: CanvasImageSource) => void) | null; logLevel: "error" | "info" | "trace" | "verbose" | "warn"; drawDebugOverlay: () => void; getLoopSegmentMediaEndTimestamp: () => number; getStartTime: () => number; getIsLooping: () => boolean; getEffects: () => EffectDefinitionAndStack[]; getEffectChainState: (width: number, height: number) => EffectChainState | null; }) => Promise<{ startVideoIterator: (timeToSeek: number, nonce: Nonce) => Promise; getVideoIteratorsCreated: () => number; seek: ({ newTime, nonce, fps, playbackRate, isPlaying, }: { newTime: number; nonce: Nonce; fps: number; playbackRate: number; isPlaying: boolean; }) => Promise; destroy: () => void; getVideoFrameIterator: () => { destroy: () => void; initialFrame: WrappedCanvas | null; isDestroyed: () => boolean; tryToSatisfySeek: (time: number, options: { pendingFrameBehavior: "restart-iterator" | "wait"; shouldContinue: () => boolean; }) => Promise<{ type: "not-satisfied"; reason: string; } | { type: "satisfied"; frame: WrappedCanvas; }>; } | null; drawFrame: (frame: WrappedCanvas) => Promise; redrawCurrentFrame: () => Promise; getFramesRendered: () => number; }>; export type VideoIteratorManager = Awaited>;