import type { ImageEditRequest, ImageGenerateRequest, ImageProvider, ImageProviderCallContext, ImageProviderInfo, ImageResult } from '../types/images.js'; import type { AssetTransformer } from './transform.js'; /** Options for the Google image provider, for the Gemini API or Vertex AI. */ export interface GoogleImageProviderConfig { /** Gemini API key, sent as `x-goog-api-key`. */ apiKey?: string; /** * OAuth bearer token for Vertex AI. Takes precedence over `apiKey`, and requires `baseUrl` to point * at a Vertex endpoint such as `https://us-central1-aiplatform.googleapis.com/v1/projects/P/locations/us-central1/publishers/google`. */ accessToken?: string; /** * API base URL. Defaults to the Gemini API, `https://generativelanguage.googleapis.com/v1beta`. */ baseUrl?: string; /** Model for generation. Defaults to `imagen-4.0-generate-001`. */ generateModel?: string; /** Model for edits. Defaults to `imagen-3.0-capability-001`. */ editModel?: string; /** Headers added to every request. */ defaultHeaders?: Record; /** Replaces the global `fetch`. */ fetch?: typeof globalThis.fetch; /** Converts a neutral mask to Imagen's white-is-editable greyscale. Loaded on first masked request. */ maskTransformer?: AssetTransformer; /** `dont_allow`, `allow_adult`, or `allow_all`, passed through as `personGeneration`. */ personGeneration?: string; /** Keeps Google's response on each result as `raw`. Off by default. */ includeRawResponse?: boolean; } /** * Google Imagen through the `:predict` protocol, on either the Gemini API or Vertex AI. * * The second hosted wire protocol behind the neutral image contract, and deliberately a different * shape from OpenAI's: aspect ratio instead of pixel dimensions, seeds and negative prompts that * OpenAI refuses, masks as a white-is-editable greyscale reference image rather than an alpha * channel, and safety filtering reported per image rather than as a request failure. */ export declare class GoogleImageProvider implements ImageProvider { private readonly config; /** Provider name, capabilities, and models. */ readonly info: ImageProviderInfo; private readonly baseUrl; private readonly fetchImplementation; private readonly generateModel; private readonly editModel; constructor(config: GoogleImageProviderConfig); /** Generates images from a prompt. */ generate(request: ImageGenerateRequest, context: ImageProviderCallContext): Promise; /** Edits an image, optionally within a mask. */ edit(request: ImageEditRequest, context: ImageProviderCallContext): Promise; private parameters; private predict; private normalize; }