/**
 * @module _shared/edit/jump-cut
 * @description `executeJumpCut` — remove filler words from video using
 * Whisper word-level timestamps + FFmpeg stream-copy concat. Also exports
 * `transcribeWithWords` and `detectFillerRanges` (used by other modules
 * via `ai-edit.ts` re-export). Split out of `ai-edit.ts` in v0.69 (Plan G
 * Phase 3).
 */
/** A detected filler word with its time range. */
export interface FillerWord {
    /** The filler word or merged phrase */
    word: string;
    /** Start time in seconds */
    start: number;
    /** End time in seconds */
    end: number;
}
/** Options for {@link executeJumpCut}. */
export interface JumpCutOptions {
    /** Path to the input video file */
    videoPath: string;
    /** Path for the output video (filler words removed) */
    outputPath: string;
    /** Custom filler words to detect (default: {@link DEFAULT_FILLER_WORDS}) */
    fillers?: string[];
    /** Padding in seconds around filler cuts (default: 0.05) */
    padding?: number;
    /** Language code for Whisper transcription */
    language?: string;
    /** If true, only analyze without producing output video */
    analyzeOnly?: boolean;
    /** Override OpenAI API key */
    apiKey?: string;
}
/** Result from {@link executeJumpCut}. */
export interface JumpCutResult {
    /** Whether the operation succeeded */
    success: boolean;
    /** Path to the output video (undefined in analyze-only mode) */
    outputPath?: string;
    /** Total duration of the source video in seconds */
    totalDuration?: number;
    /** Number of filler word occurrences detected */
    fillerCount?: number;
    /** Total duration of filler words in seconds */
    fillerDuration?: number;
    /** Detected filler word ranges */
    fillers?: FillerWord[];
    /** Error message on failure */
    error?: string;
}
/** Default set of filler words detected by jump-cut. */
export declare const DEFAULT_FILLER_WORDS: string[];
/**
 * Transcribe audio with word-level timestamps using Whisper API directly.
 * Uses timestamp_granularities[]=word for filler detection.
 */
export declare function transcribeWithWords(audioPath: string, apiKey: string, language?: string): Promise<{
    words: {
        word: string;
        start: number;
        end: number;
    }[];
    text: string;
}>;
/**
 * Detect filler word ranges and merge adjacent ones within padding distance.
 */
export declare function detectFillerRanges(words: {
    word: string;
    start: number;
    end: number;
}[], fillers: string[], padding: number): FillerWord[];
/**
 * Remove filler words from a video using Whisper word-level timestamps + FFmpeg concat.
 *
 * Pipeline: extract audio -> Whisper transcription (word-level) -> detect fillers ->
 * invert to keep-segments -> FFmpeg stream-copy concat.
 */
export declare function executeJumpCut(options: JumpCutOptions): Promise<JumpCutResult>;
