import { z } from "zod"; import type { AgentTool } from "@kenkaiiii/gg-agent"; /** * trim_dead_air — single-call wrapper that detects head/tail (or all) silence * via `silencedetect` and produces a trimmed mp4. The agent normally chains * `detect_silence` + `write_edl` + `import_edl` for full silence cleanup; * this tool collapses the most-common case (chop the dead air at the start * and end of a recording) into one call. * * Modes: * - "head-tail" (default): trim only leading and trailing silence * - "all": cut every silence run >= minSilenceSec, re-encode the keeps * concatenated. Same end-state as the EDL pipeline but produces a flat * file the user can drop into any NLE. */ declare const TrimDeadAirParams: z.ZodObject<{ input: z.ZodString; output: z.ZodString; mode: z.ZodOptional>; minSilenceSec: z.ZodOptional; thresholdDb: z.ZodOptional; paddingSec: z.ZodOptional; videoCodec: z.ZodOptional; crf: z.ZodOptional; audioBitrate: z.ZodOptional; }, z.core.$strip>; export declare function createTrimDeadAirTool(cwd: string): AgentTool; /** * Compute keep ranges from detected silences. * * mode='head-tail': only the leading silence (if any starts at ~0) and the * trailing silence (if any ends at totalSec) are removed; everything in * between is one big keep range. * mode='all': inverse of all detected silences — every gap between silences * becomes a keep range. * * Padding extends each keep outward; clamped to [0, totalSec] and to its * neighbours so adjacent keeps never overlap. */ export declare function computeKeeps(silences: Array<{ startSec: number; endSec: number; }>, totalSec: number, mode: "head-tail" | "all", paddingSec: number): Array<{ startSec: number; endSec: number; }>; /** * Build an ffmpeg filter_complex that trims to N keep ranges and concats * them into a single video+audio output labelled [v][a]. */ export declare function buildTrimConcatFilter(keeps: Array<{ startSec: number; endSec: number; }>): string; export {}; //# sourceMappingURL=trim-dead-air.d.ts.map