import type { DipclawConfig } from "../config/types.js";
import type { AttachmentSender, ProgressNotifier } from "./agent.js";
type ImageGenConfig = NonNullable<DipclawConfig["llm"]["imageGeneration"]>;
interface GenerateArgs {
    prompt?: unknown;
    size?: unknown;
    caption?: unknown;
    autoSend?: unknown;
}
interface EditArgs extends GenerateArgs {
    image?: unknown;
    mask?: unknown;
}
export declare class ImageGenerator {
    private config;
    private baseUrl;
    private workspace;
    private attachmentsDir;
    constructor(config: ImageGenConfig, baseUrl: string, workspace: string);
    generate(args: GenerateArgs, sender: AttachmentSender | null, notify?: ProgressNotifier | null): Promise<string>;
    edit(args: EditArgs, sender: AttachmentSender | null, notify?: ProgressNotifier | null): Promise<string>;
    /**
     * Resolve a user-supplied path against attachments/, confirm the file
     * exists, and pick the right MIME type for the multipart upload. Throws
     * with a user-facing message on any failure.
     */
    private resolveImageForUpload;
    /**
     * Decode base64 response, run C2PA strip + JPEG re-encode, write to
     * attachments/, then auto-deliver if a frontend is registered. Shared
     * by `generate` and `edit` so both flows behave identically downstream.
     */
    private saveAndDeliver;
}
export {};
