import type { VeniceClient } from './client.js'; import type { MultiEditModel } from './types.js'; export interface ReferenceDraftCharacter { name: string; /** Short identity line: base traits + description + wardrobe. */ identityLine: string; /** Absolute path to the character's reference image (front.png / anchor.png). */ refPath: string; } export interface DraftPanelOptions { /** Edit model (multi-edit takes `modelId`). Defaults to the caller's edit default. */ model?: MultiEditModel; /** * Base image path. When this is a location plate, characters are composed * INTO the location (geography inherited, not re-imagined). When it is a * t2i scene draft, characters are corrected in place. */ basePath: string; /** How the base image should be treated in the prompt. */ baseKind: 'location' | 'scene-draft'; /** Up to 2 character references (multi-edit budget: base + 2 layers). */ characters: ReferenceDraftCharacter[]; /** * Scene text: action, framing, and blocking for the shot. The composition * instruction ("place X from image N…") is prepended automatically. */ sceneDescription: string; /** Explicit spatial blocking sentence(s), injected verbatim when present. */ blocking?: string; /** Aesthetic string appended as a style clause. */ aesthetic?: string; /** Target aspect ratio, e.g. "16:9" — output is restored to this. */ aspectRatio: string; /** Where to write the finished PNG. */ outPath: string; /** Recipe label, e.g. "reference-drafted panel" / "blocking plate". */ recipeLabel: string; } export interface DraftPanelResult { path: string; prompt: string; referenceImagePaths: string[]; /** Character names whose identity came from real reference bytes. */ anchoredCharacters: string[]; /** Character names that fell back to text-only identity (missing/dropped refs). */ textOnlyCharacters: string[]; } /** * Build the composition prompt. Image numbering follows the multi-edit * array order: image 1 = base, images 2..N = character layers. */ export declare function buildReferenceDraftPrompt(options: DraftPanelOptions): string; /** * Draft a panel (or blocking plate) with REAL reference bytes via multi-edit. * Writes the result to `outPath`, restores the target aspect ratio, and * appends a recipe pass. Returns the final path + the prompt used. */ export declare function draftPanelWithReferences(client: VeniceClient, options: DraftPanelOptions): Promise; //# sourceMappingURL=reference-draft.d.ts.map