import type { MediaParserAudioSample, MediaParserLogLevel, MediaParserVideoSample, WriterInterface } from '@remotion/media-parser'; import type { ConvertMediaContainer } from '../get-available-containers'; import type { MakeTrackAudio, MakeTrackVideo } from './make-track-info'; import type { ProgressTracker } from './progress-tracker'; export type MediaFn = { getBlob: () => Promise; remove: () => Promise; addSample: (options: { chunk: MediaParserAudioSample | MediaParserVideoSample; trackNumber: number; isVideo: boolean; codecPrivate: Uint8Array | null; }) => Promise; addTrack: (track: Omit | Omit) => Promise<{ trackNumber: number; }>; addWaitForFinishPromise: (promise: () => Promise) => void; waitForFinish: () => Promise; updateTrackSampleRate: (options: { trackNumber: number; sampleRate: number; }) => void; }; export type MediaFnGeneratorInput = { writer: WriterInterface; onBytesProgress: (totalBytes: number) => void; onMillisecondsProgress: (totalMilliseconds: number) => void; logLevel: MediaParserLogLevel; filename: string; progressTracker: ProgressTracker; expectedDurationInSeconds: number | null; expectedFrameRate: number | null; container: ConvertMediaContainer; };