/** * Image Generation Provider * Multi-provider image inference with circuit breakers and cost tracking. * * Supports: * - Cloudflare Workers AI (SDXL Lightning, FLUX Klein, FLUX Dev) * - Google Gemini (Flash Image, Flash Image Preview) * * Extracted from img-forge production codebase. Battle-tested. * * @deprecated Use the img-forge service or the img-forge MCP tools instead. * ImageProvider is a frozen snapshot of img-forge's internals and will not * track new models or providers. For image generation from within a Worker, * call the img-forge gateway via fetch or the GATEWAY service binding. */ import type { ImageRequest, ImageResponse, ImageModelConfig } from './types.js'; /** * @deprecated Use img-forge instead. See ImageProvider deprecation notice. */ export interface ImageProviderConfig { /** Cloudflare Workers AI binding (env.AI) */ cloudflareAi?: unknown; /** Google Gemini API key */ geminiApiKey?: string; /** Default model name (key from IMAGE_MODELS) */ defaultModel?: string; /** Custom model configs (extend or override built-in registry) */ models?: Record; } /** * @deprecated Use the img-forge service or the img-forge MCP tools instead. * ImageProvider is a frozen snapshot of img-forge's internals and will not * track new models or providers. For image generation from within a Worker, * call the img-forge gateway via fetch or the GATEWAY service binding. */ export declare class ImageProvider { private cloudflareAi; private geminiApiKey; private defaultModel; private models; constructor(config: ImageProviderConfig); /** * Generate an image from a text prompt. * Returns raw image bytes with metadata. */ generateImage(request: ImageRequest): Promise; /** List available models based on configured providers. */ getAvailableModels(): string[]; private callCloudflare; private callGemini; } /** * Normalize Workers AI responses to ArrayBuffer. * Different models return different types (ReadableStream, ArrayBuffer, * objects with .image property, base64 strings). This handles all of them. */ export declare function normalizeAiResponse(response: unknown): Promise; //# sourceMappingURL=provider.d.ts.map