export * from "./api.js";
import { DescriptionKey } from "./tasks/description.js";
import { TagKey } from "./tasks/tags.js";
export declare function execute({ tasks, path: imagePath, provider, model, descriptionTags, tagTags, descriptionPrompt, tagPrompt, verbose, dry, writeArgs, providerArgs, avoidOverwrite, repeat, }: {
    /**
     * Array of tasks to perform: 'description', 'tag'
     */
    tasks?: string[];
    /**
     * Path to the image file to process
     */
    path: string;
    /**
     * Name of the provider module to use for generating descriptions and tags
     */
    provider: string;
    /**
     * Optional model name to be used by the provider
     */
    model?: string;
    /**
     * List of EXIF tags to write the description to
     */
    descriptionTags?: DescriptionKey[];
    /**
     * List of EXIF tags to write the tags to
     */
    tagTags?: TagKey[];
    /**
     * Prompt to use for generating the description
     */
    descriptionPrompt?: string;
    /**
     * Prompt to use for generating the tags
     */
    tagPrompt?: string;
    /**
     * Enable verbose logging
     */
    verbose?: boolean;
    /**
     * Perform a dry run without writing to the file
     */
    dry?: boolean;
    /**
     * Additional arguments to pass to the exiftool write function
     */
    writeArgs?: string[];
    /**
     * Additional arguments to pass to the provider module
     */
    providerArgs?: string[];
    /**
     * Avoid overwriting existing tags
     */
    avoidOverwrite?: boolean;
    /**
     * Number of times to repeat the task if it does not return acceptable results
     */
    repeat?: number;
}): Promise<void>;
