import type { ContentMessageItemImage } from "#ai-utils"; import type { DevToolsSys } from "../../types"; export interface GifGeneratorOptions { duration?: string; frameDurations?: string[]; outputPath: string; cleanup?: boolean; sys?: DevToolsSys; maxWidth?: number; debug?: boolean; signal?: AbortSignal; } export declare class GifGenerator { #private; private frames; private tmpDir; private static ffmpegAvailable; /** * Check if ffmpeg is available on the system */ static checkFfmpegAvailable(signal?: AbortSignal): Promise; /** * Add an image frame to the GIF * @param image ContentMessageItemImage with base64 source */ addImage(image: ContentMessageItemImage): void; /** * Add multiple image frames to the GIF * @param images Array of ContentMessageItemImage with base64 sources */ addImages(images: ContentMessageItemImage[]): void; /** * Get the number of frames added */ getFrameCount(): number; /** * Clear all frames */ clearFrames(): void; /** * Generate the GIF from the added frames * @param options Generation options * @returns Path to the generated GIF file */ generateGif(options: GifGeneratorOptions): Promise; /** * Manually cleanup if needed (useful for non-cleanup mode) */ cleanup(): Promise; } /** * Helper function to quickly generate a GIF from images * This function is completely safe and will never throw exceptions * @param images Array of ContentMessageItemImage with base64 sources * @param options Generation options * @returns Path to the generated GIF file, or null if generation failed */ export declare function generateGifFromImages(images: ContentMessageItemImage[], options: GifGeneratorOptions): Promise;