import { type AgentInvokeOptions, VideoModel, type VideoModelInput, type VideoModelOptions, type VideoModelOutput } from "@aigne/core"; import type OpenAI from "openai"; import type { ClientOptions } from "openai"; /** * Input options for OpenAI Video Model */ export interface OpenAIVideoModelInput extends VideoModelInput { /** * Sora model to use for video generation * * - `sora-2`: Standard version, lower cost * - `sora-2-pro`: Pro version, higher quality * * @default "sora-2" */ model?: "sora-2" | "sora-2-pro"; /** * Video resolution (width x height) * * - `720x1280`: Vertical video (9:16) * - `1280x720`: Horizontal video (16:9) * - `1024x1792`: Vertical video (9:16, higher resolution) * - `1792x1024`: Horizontal video (16:9, higher resolution) */ size?: "720x1280" | "1280x720" | "1024x1792" | "1792x1024"; /** * Video duration in seconds * * @default "4" */ seconds?: "4" | "8" | "12"; } /** * Output from OpenAI Video Model */ export interface OpenAIVideoModelOutput extends VideoModelOutput { } /** * Configuration options for OpenAI Video Model */ export interface OpenAIVideoModelOptions extends VideoModelOptions { /** * API key for OpenAI API * * If not provided, will look for OPENAI_API_KEY in environment variables */ apiKey?: string; /** * Base URL for OpenAI API * * Useful for proxies or alternate endpoints */ baseURL?: string; /** * OpenAI model to use * * Defaults to 'sora-2' */ model?: string; /** * Additional model options to control behavior */ modelOptions?: Omit, "model">; /** * Client options for OpenAI API */ clientOptions?: Partial; /** * Polling interval in milliseconds for checking video generation status * * Defaults to 2000ms (2 seconds) */ pollingInterval?: number; } export declare class OpenAIVideoModel extends VideoModel { options?: OpenAIVideoModelOptions | undefined; constructor(options?: OpenAIVideoModelOptions | undefined); /** * @hidden */ protected _client?: OpenAI; protected apiKeyEnvName: string; get client(): OpenAI; get credential(): { url: string | undefined; apiKey: string | undefined; model: string; }; get modelOptions(): Omit, "model"> | undefined; downloadToFile(videoId: string): Promise; process(input: OpenAIVideoModelInput, _options: AgentInvokeOptions): Promise; }