import type { Database, DocWithId } from "@vibes.diy/vibe-runtime"; export type { FileMeta, PromptEntry } from "@vibes.diy/vibe-types"; import type { FileMeta, PromptEntry } from "@vibes.diy/vibe-types"; export interface ImageDocumentPlain { readonly type: "image"; readonly created: number; readonly currentVersion: number; readonly versions: VersionInfo[]; readonly currentPromptKey: string; readonly prompts?: Record; readonly prompt?: string; readonly _files?: Record; } export type ImageDocument = DocWithId; export type PartialImageDocument = DocWithId>; export interface VersionInfo { readonly id: string; readonly created: number; readonly promptKey?: string; readonly assetUrl: string; readonly model?: string; } export type GenerationPhase = "idle" | "generating" | "complete" | "error"; export interface UseImgVibesOptions { readonly prompt: string; readonly _id: string; readonly database: string | Database; readonly generationId: string; readonly skip: boolean; readonly inputImage?: File; readonly model?: string; } export interface UseImgVibesResult { readonly assetUrl?: string | null; readonly loading: boolean; readonly progress: number; readonly error?: Error | null; readonly document?: PartialImageDocument | null; }