/** * IndexedDB-backed store for history-entry photos. * * History entry metadata (sizing result, picked sizes, product info) lives in * localStorage — small, JSON-serializable. The user's *photo* is binary and * would blow the 5–10 MB localStorage quota at 50 entries; IndexedDB has no * such practical limit. * * Each photo is stored as a `Blob` keyed by the history entry's `id`. When * a history entry is deleted, call `deletePhoto(id)` to free the row. */ /** Save a photo Blob keyed by historyEntryId. Replaces if exists. */ export declare function savePhoto(id: string, blob: Blob): Promise; /** Load a photo Blob by historyEntryId, or null if not stored. */ export declare function getPhoto(id: string): Promise; /** Delete a photo by historyEntryId. */ export declare function deletePhoto(id: string): Promise; /** Save a try-on result Blob keyed by historyEntryId. Replaces if exists. */ export declare function saveResult(id: string, blob: Blob): Promise; /** Load a try-on result Blob by historyEntryId, or null if not stored. */ export declare function getResult(id: string): Promise; /** Garbage-collect: keep only photos (and results) whose id is in `keepIds`. * Uses a value cursor (openCursor) so records can be deleted during * iteration — openKeyCursor's cursor.delete() throws InvalidStateError. */ export declare function pruneToIds(keepIds: Set): Promise;