import type { OpenClawConfig } from "../config/types.js"; import type { ActiveMediaModel } from "./active-model.types.js"; import type { MediaUnderstandingDecision, MediaUnderstandingOutput, MediaUnderstandingProvider } from "./types.js"; export type RunMediaUnderstandingFileParams = { capability: "image" | "audio" | "video"; filePath: string; cfg: OpenClawConfig; agentDir?: string; mime?: string; activeModel?: ActiveMediaModel; prompt?: string; timeoutMs?: number; }; export type RunMediaUnderstandingFileResult = { text: string | undefined; provider?: string; model?: string; output?: MediaUnderstandingOutput; decision?: MediaUnderstandingDecision; }; export type DescribeImageFileParams = { filePath: string; cfg: OpenClawConfig; agentDir?: string; mime?: string; activeModel?: ActiveMediaModel; prompt?: string; timeoutMs?: number; }; export type DescribeImageFileWithModelParams = { filePath: string; cfg: OpenClawConfig; agentDir?: string; mime?: string; provider: string; model: string; prompt: string; maxTokens?: number; timeoutMs?: number; }; type DescribeImageFileWithModelResult = Awaited>>; export type DescribeVideoFileParams = { filePath: string; cfg: OpenClawConfig; agentDir?: string; mime?: string; activeModel?: ActiveMediaModel; }; export type TranscribeAudioFileParams = { filePath: string; cfg: OpenClawConfig; agentDir?: string; mime?: string; activeModel?: ActiveMediaModel; language?: string; prompt?: string; }; export type MediaUnderstandingRuntime = { runMediaUnderstandingFile: (params: RunMediaUnderstandingFileParams) => Promise; describeImageFile: (params: DescribeImageFileParams) => Promise; describeImageFileWithModel: (params: DescribeImageFileWithModelParams) => Promise; describeVideoFile: (params: DescribeVideoFileParams) => Promise; transcribeAudioFile: (params: TranscribeAudioFileParams) => Promise; }; export {};