import { isVoiceCompatibleAudio } from "../media/audio.js"; export function isTelegramVoiceCompatible(opts: { contentType?: string | null; fileName?: string | null; }): boolean { return isVoiceCompatibleAudio(opts); } export function resolveTelegramVoiceDecision(opts: { wantsVoice: boolean; contentType?: string | null; fileName?: string | null; }): { useVoice: boolean; reason?: string } { if (!opts.wantsVoice) return { useVoice: false }; if (isTelegramVoiceCompatible(opts)) return { useVoice: true }; const contentType = opts.contentType ?? "unknown"; const fileName = opts.fileName ?? "unknown"; return { useVoice: false, reason: `media is ${contentType} (${fileName})`, }; } export function resolveTelegramVoiceSend(opts: { wantsVoice: boolean; contentType?: string | null; fileName?: string | null; logFallback?: (message: string) => void; }): { useVoice: boolean } { const decision = resolveTelegramVoiceDecision(opts); if (decision.reason && opts.logFallback) { opts.logFallback( `Telegram voice requested but ${decision.reason}; sending as audio file instead.`, ); } return { useVoice: decision.useVoice }; }