/** Browser-safe metadata and locator source for one stored image. */ export interface VisionAttachmentView { attachmentId: string; mediaType: 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif'; bytes: number; width: number; height: number; name?: string; } /** Browser projection of one session-scoped vision call. */ export type VisionCallView = { id: string; createdAt: number; durationMs: number; origin: 'message' | 'tool' | 'tool-result'; backendId: string; model: string; prompt: string; attachment: VisionAttachmentView; } & ({ status: 'success'; title: string; result: string; } | { status: 'error'; error: string; }); /** One date section in the vertical call list. */ export interface VisionCallGroup { date: string; calls: VisionCallView[]; } /** Validate the host response and retain only fields rendered by the client. */ export declare function parseCallsPayload(payload: unknown): VisionCallView[]; /** Build the stable logical locator shown for one opaque attachment id. */ export declare function attachmentLocator(attachmentId: string): string; /** Build the read-only call-list URL for one session. */ export declare function callsUrl(sessionId: string): string; /** Build a preview URL authorized by both session and call identity. */ export declare function imageUrl(sessionId: string, callId: string): string; /** Sort calls newest first and collect them into date sections. */ export declare function groupCalls(calls: readonly VisionCallView[], formatDate?: (createdAt: number) => string): VisionCallGroup[]; //# sourceMappingURL=model.d.ts.map