import type { AudioAnalysis, ProcessingOptions } from "../types/audio.js"; import type { Logger } from "../utils/logger.js"; import { type OutputContainer } from "../utils/files.js"; import type { TempSession } from "../utils/temp.js"; export interface PipelineResult { inputPath: string; outputPath: string; analysis: AudioAnalysis; filtersApplied: string[]; warnings: string[]; dryRun: boolean; normalized: boolean; targetLufs: number | null; restorationDir: string | null; selectedCandidate: string | null; /** Set when a picture track from the input was copied into the output. */ keptVideo: boolean; } /** * Stream mapping and metadata for the final mux. * * Input 0 is the restored audio, input 1 the original file. A picture track is * copied, never re-encoded: it is untouched by restoration, and re-encoding it * would cost quality and time for nothing. */ export declare function muxArgs(options: { container: OutputContainer; stripMetadata: boolean; hasEmbeddedArtwork: boolean; videoStreamIndex: number | null; }): string[]; export declare function runRestorationPipeline(options: { input: string; output?: string; /** Where to place the output when no explicit path was given. */ outputDirectory?: string; processing: ProcessingOptions; logger: Logger; temp: TempSession; mode?: "clean" | "restore"; }): Promise;