import type { VideoProjectWorkspace } from './workspace.js'; export interface CharacterProfile { id: string; name: string; goBananasId?: number; description?: string; /** * Locked wardrobe/clothing for this character (e.g. "crimson-red dhoti, * rudraksha bead necklace, top-knot"). When present, `buildExecutionPayload` * appends a deterministic "Keep in exactly." clause to every * scene that lists this character — structurally pinning the costume so it * cannot drift colour/wardrobe between scenes. Optional; absent = no clause. */ costume?: string; referenceAssets: string[]; notes?: string[]; createdAt: string; updatedAt: string; } export interface CharacterProfileStore { characters: CharacterProfile[]; } /** Derive the stable character id from a display name (exported so callers can * compute the id before persisting — e.g. to name ingested reference files). */ export declare function characterIdFromName(value: string): string; export interface IngestCharacterReferenceResult { relativePath: string; ingested: boolean; missing: boolean; } /** * Normalize a character reference so it is portable and discoverable by the * preview portal (which only renders project-relative paths). Behaviour: * - URI refs (`gobananas://`, `http(s)://`) are returned verbatim (not files). * - A ref that does not exist on disk is returned verbatim with `missing:true` * (callers surface a warning; we never throw — the project stays usable, and * this keeps pure-unit expectations that pass placeholder paths intact). * - A ref already inside the project is stored project-relative as-is. * - A ref outside the project is COPIED into `characters/-.` so * the project is self-contained, and the new relative path is returned. */ export declare function ingestCharacterReference(workspace: VideoProjectWorkspace, characterId: string, srcPath: string, index: number): Promise; export declare function addCharacterProfile(workspace: VideoProjectWorkspace, input: { name: string; goBananasId?: number; description?: string; costume?: string; referenceAssets?: string[]; notes?: string[]; }): Promise; export declare function listCharacterProfiles(workspace: VideoProjectWorkspace): Promise; export declare function readCharacterProfile(workspace: VideoProjectWorkspace, idOrName: string): Promise; //# sourceMappingURL=characters.d.ts.map