/** * Runware HTTP REST API client * Uses the REST API instead of the WebSocket SDK * API documentation: https://runware.ai/docs/en/getting-started/how-to-connect * * Image generation uses async delivery with polling: * 1. Submit task with deliveryMethod: "async" * 2. Receive taskUUID in response * 3. Poll with getResponse until status is "success" or "failed" */ export interface RunwareImageInferenceParams { model: string; positivePrompt: string; width?: number; height?: number; negativePrompt?: string; numberResults?: number; outputType?: 'URL' | 'base64Data' | 'dataURI'; outputFormat?: 'PNG' | 'JPG' | 'WEBP'; outputQuality?: number; steps?: number; CFGScale?: number; seed?: number; scheduler?: string; seedImage?: string; maskImage?: string; strength?: number; /** Model-specific inputs (e.g., referenceImages for FLUX.2 [dev]) */ inputs?: { referenceImages?: string[]; [key: string]: unknown; }; /** Root-level reference images (for models like GPT Image 1 that don't use nested inputs) */ referenceImages?: string[]; [key: string]: unknown; } /** * Partial params that can be spread together to form complete params. * Used when some params come from options and some from mapInput. */ export type RunwareImageInferenceInput = Partial & { [key: string]: unknown; }; export interface RunwareImageResult { taskType: string; taskUUID: string; status?: 'processing' | 'success' | 'failed'; imageURL?: string; imageUUID?: string; seed?: number; NSFWContent?: boolean; cost?: number; errorMessage?: string; } export interface RunwareErrorResponse { errorId: number; errorMessage: string; taskUUID?: string; } export interface RunwareClient { imageInference: (params: RunwareImageInferenceInput, abortSignal?: AbortSignal) => Promise; } export declare function createRunwareClient(proxyUrl: string, headers?: Record): RunwareClient;