/** * Media processing handlers extracted from wait-tool.ts (Phase 4). * * Handles voice messages, animations/GIFs, and video notes — * downloading, transcribing, analyzing, and building content blocks. */ import type { StoredMessage } from "../../services/dispatcher/index.js"; import { type Database } from "../../data/memory/index.js"; import type { TelegramClient } from "../../services/telegram.js"; import type { ContentBlock } from "../../lib/types.js"; /** Focused context that media processors need — not the full WaitToolContext. */ export interface MediaContext { telegram: TelegramClient; openaiApiKey: string; voiceAnalysisUrl: string; effectiveThreadId: number; sessionStartedAt: number; getMemoryDb: () => Database; } /** * Process a voice message: download → parallel transcription + VANPY → * build tags → text block → save episode + voice signature. * * @returns Content blocks to append, and whether an episode was auto-saved. */ export declare function processVoice(msg: StoredMessage, ctx: MediaContext): Promise<{ blocks: ContentBlock[]; episodeSaved: boolean; }>; /** * Process an animation/GIF: download → disk save → extractVideoFrames → * analyzeVideoFrames → text block. */ export declare function processAnimation(msg: StoredMessage, ctx: MediaContext): Promise; /** * Process a video note (circle video): download → parallel(frames, transcribe, * VANPY) → vision analysis → tags → text block → save episode + voice signature. * * @returns Content blocks to append, and whether an episode was auto-saved. */ export declare function processVideoNote(msg: StoredMessage, ctx: MediaContext): Promise<{ blocks: ContentBlock[]; episodeSaved: boolean; }>; //# sourceMappingURL=media-processor.d.ts.map