/**
 * Media Library
 *
 * Manages media files (videos, audio) in HQ workspaces.
 * Preprocesses media into frames + transcripts for agent consumption.
 */
import { type MediaItem } from '../database/index.js';
export type { MediaItem } from '../database/index.js';
/**
 * Check if ffmpeg is installed
 */
export declare function isFfmpegInstalled(): boolean;
/**
 * Check if whisper (or whisper.cpp) is available for transcription
 */
export declare function isWhisperInstalled(): boolean;
/**
 * Detect if a file is video or audio based on extension
 */
export declare function detectMediaType(filePath: string): 'video' | 'audio' | null;
/**
 * Get the media directory path within the HQ
 */
export declare function getMediaDir(hqPath: string): string;
/**
 * Add a media file to the HQ
 */
export declare function addMedia(hqPath: string, sourcePath: string, options?: {
    interval?: number;
    transcribe?: boolean;
}): Promise<{
    success: boolean;
    name: string;
    error?: string;
}>;
/**
 * Remove a media item from the HQ
 */
export declare function removeMedia(hqPath: string, name: string): {
    success: boolean;
    error?: string;
};
/**
 * List all media items in the workspace
 */
export declare function listMedia(hqPath: string): MediaItem[];
/**
 * Get details for a specific media item
 */
export declare function showMedia(hqPath: string, name: string): MediaItem | null;
/**
 * Preprocess a media file: extract frames and generate transcript
 */
export declare function preprocessMedia(hqPath: string, name: string, options?: {
    interval?: number;
    transcribe?: boolean;
}): Promise<{
    success: boolean;
    error?: string;
}>;
export interface MediaInfo {
    name: string;
    mediaType: 'video' | 'audio';
    status: 'pending' | 'processing' | 'ready' | 'error';
    frameCount: number;
    hasTranscript: boolean;
    durationSeconds: number | null;
    resolution: string | null;
    addedAt: string;
}
/**
 * Get workspace media information
 */
export declare function getWorkspaceMediaInfo(): {
    hqPath: string;
    mediaPath: string;
    media: MediaInfo[];
};
/**
 * Copy preprocessed media assets into an agent's workspace directory.
 * Only copies lightweight preprocessed assets (frames/, transcript.md, manifest.json).
 * Does NOT copy the raw source video (too large).
 *
 * @param hqPath - The HQ root path
 * @param agentDir - The agent's working directory (e.g., agents/temp/thick-spiegel)
 */
export declare function copyMediaToAgentWorkspace(hqPath: string, agentDir: string): void;
/**
 * Format duration in seconds to human-readable string
 */
export declare function formatDuration(seconds: number): string;
