import type { AudioAnalysis, BuiltFilterChain, NoiseAnalysis, PresetName, RestorationPlan } from "../types/audio.js"; import { type RestorationPlanOptions } from "./restoration-plan.js"; export interface FilterBuildOptions { preset: PresetName; strength: number; allowTonalCorrection?: boolean; /** When provided, skip re-planning and only compile. */ plan?: RestorationPlan; noise?: NoiseAnalysis; noiseProfile?: RestorationPlanOptions["noiseProfile"]; noiseType?: RestorationPlanOptions["noiseType"]; artifactProtection?: RestorationPlanOptions["artifactProtection"]; normalize?: boolean; intensityScale?: number; nfOffsetDeltaDb?: number; } /** Compile a restoration plan into an FFmpeg filter string. No limiter stage. */ export declare function compileFilterChain(plan: RestorationPlan): BuiltFilterChain; /** * Build full-mix filter chain from analysis + options. * Prefer passing a pre-built RestorationPlan from the pipeline. */ export declare function buildFilterChain(analysis: AudioAnalysis, options: FilterBuildOptions): BuiltFilterChain; export declare function appendFilter(chain: string | null, filter: string): string; /** Count primary afftdn stages — must be 0 or 1. */ export declare function countPrimaryDenoisers(plan: RestorationPlan): number;