/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */ export type MediaProviderCapability = 'metadata' | 'understand' | 'transform' | 'generate' | 'attachment-store'; export type MediaProviderState = 'healthy' | 'degraded' | 'disabled' | 'unconfigured'; export interface MediaArtifact { readonly id?: string | undefined; readonly artifactId?: string | undefined; readonly mimeType: string; readonly dataBase64?: string | undefined; readonly uri?: string | undefined; readonly filename?: string | undefined; readonly sizeBytes?: number | undefined; readonly sha256?: string | undefined; readonly metadata: Record; } export interface MediaProviderStatus { readonly id: string; readonly label: string; readonly state: MediaProviderState; readonly capabilities: readonly MediaProviderCapability[]; readonly configured: boolean; readonly detail?: string | undefined; readonly metadata: Record; } export interface MediaAnalysisRequest { readonly artifact: MediaArtifact; readonly prompt?: string | undefined; readonly modelId?: string | undefined; readonly metadata?: Record | undefined; } export interface MediaAnalysisResult { readonly providerId: string; readonly description?: string | undefined; readonly labels?: readonly string[] | undefined; readonly text?: string | undefined; readonly metadata: Record; } export interface MediaTransformRequest { readonly artifact: MediaArtifact; readonly operation: string; readonly outputMimeType?: string | undefined; readonly options?: Record | undefined; readonly metadata?: Record | undefined; } export interface MediaTransformResult { readonly providerId: string; readonly artifact: MediaArtifact; readonly metadata: Record; } export interface MediaGenerationRequest { readonly prompt: string; readonly outputMimeType?: string | undefined; readonly modelId?: string | undefined; readonly options?: Record | undefined; readonly metadata?: Record | undefined; } export interface MediaGenerationResult { readonly providerId: string; readonly artifacts: readonly MediaArtifact[]; readonly metadata: Record; } export interface MediaProvider { readonly id: string; readonly label: string; readonly capabilities: readonly MediaProviderCapability[]; status?(): Promise | MediaProviderStatus; analyze?(request: MediaAnalysisRequest): Promise; transform?(request: MediaTransformRequest): Promise; generate?(request: MediaGenerationRequest): Promise; } export interface MediaProviderDescriptor { readonly id: string; readonly label: string; readonly capabilities: readonly MediaProviderCapability[]; } export declare class MediaProviderRegistry { private readonly providers; register(provider: MediaProvider, options?: { readonly replace?: boolean; }): () => void; unregister(id: string): boolean; get(id: string): MediaProvider | null; list(): MediaProviderDescriptor[]; findProvider(capability: MediaProviderCapability, providerId?: string): MediaProvider | null; status(): Promise; } //# sourceMappingURL=provider-registry.d.ts.map