import type { JsonRecord } from './route-helpers.js'; export type ArtifactKind = string; export type FetchExtractMode = string; export type MediaArtifact = Record; export type MultimodalAnalysisResult = unknown; export type MultimodalDetail = string; export type VoiceAudioArtifact = Record; export interface VoiceSynthesisStreamLike { readonly providerId: string; readonly mimeType: string; readonly format: string; readonly chunks: AsyncIterable<{ readonly data: Uint8Array; }>; readonly metadata: Record; } export type WebSearchSafeSearch = string; export type WebSearchTimeRange = string; export type WebSearchVerbosity = string; export interface ConfigManagerLike { get(key: string): unknown; } export interface VoiceServiceLike { getStatus(enabled: boolean): Promise<{ providers: readonly unknown[]; }>; listVoices(providerId?: string): Promise; synthesize(providerId: string | undefined, input: Record): Promise; synthesizeStream(providerId: string | undefined, input: Record): Promise; transcribe(providerId: string | undefined, input: Record): Promise; openRealtimeSession(providerId: string | undefined, input: Record): Promise; } export interface WebSearchServiceLike { getStatus(): Promise<{ providers: readonly unknown[]; }>; search(input: Record): Promise; } export interface ArtifactStoreLike { list(): readonly unknown[]; create(input: Record): Promise; get(artifactId: string): unknown | null; readContent(artifactId: string): Promise<{ readonly record: { readonly mimeType: string; readonly filename?: string | undefined; }; readonly buffer: ArrayBuffer | Uint8Array; }>; } export interface MediaProviderLike { analyze?(input: Record): Promise; transform?(input: Record): Promise; generate?(input: Record): Promise; } export interface MediaProviderRegistryLike { status(): Promise; findProvider(capability: 'understand' | 'transform' | 'generate', providerId?: string): MediaProviderLike | null; } export interface MultimodalServiceLike { getStatus(): Promise; listProviders(): Promise; analyze(input: Record): Promise; buildPacket(analysis: MultimodalAnalysisResult, detail: MultimodalDetail, budgetLimit?: number): unknown; writeBackAnalysis(analysis: MultimodalAnalysisResult, input: Record): Promise; } export interface DaemonMediaRouteContext { readonly artifactStore: ArtifactStoreLike; readonly configManager: ConfigManagerLike; readonly mediaProviders: MediaProviderRegistryLike; readonly multimodalService: MultimodalServiceLike; readonly parseJsonBody: (req: Request) => Promise; readonly requireAdmin: (req: Request) => Response | null; readonly voiceService: VoiceServiceLike; readonly webSearchService: WebSearchServiceLike; } //# sourceMappingURL=media-route-types.d.ts.map