import { GeneratedVideo, VideoModelContract } from "../contracts/video.contract.mjs"; import { BaseReport, ExecuteResult, FlowObserveOption } from "@warlock.js/ai"; //#region ../../packages/ai-live/src/video/video.d.ts /** Parameters for {@link video}. `model` comes from an adapter's `video({ name })`. */ export type VideoParams = { model: VideoModelContract; prompt: string; durationSeconds?: number; aspectRatio?: string; resolution?: string; negativePrompt?: string; signal?: AbortSignal; observe?: FlowObserveOption; sessionId?: string; name?: string; options?: Record; }; /** Success payload of a {@link video} run. */ export type VideoData = { video: GeneratedVideo; }; /** The report node a {@link video} run produces (`type: "video"`). */ export type VideoReport = BaseReport & { type: "video"; model: { name: string; provider: string; }; /** Final clip duration in seconds, when reported. */ durationSeconds?: number; }; /** Result envelope of {@link video} — the uniform `{ data, error, usage, report }`. */ export type VideoResult = ExecuteResult & { type: "video"; report: VideoReport; }; /** * Generate a video from a text prompt — the moving-image verb of the * output-modality track. The adapter hides the provider's submit→poll * job, so this returns the framework's uniform never-throws envelope: * * - **Never throws.** Provider failures surface as a typed `AIError`. * - **Cost-truth.** `usage.cost` is filled per-second (Sora / Veo) or * per-token, folding into the same `Usage.cost` rollup as everything else. * - **Observable.** The completed {@link VideoReport} routes to any * registered `Observer` via the shared `observe` seam. * * @example * const { data, error } = await ai.video({ * model: sora.video({ name: "sora-2", pricing: { perSecond: 0.1 } }), * prompt: "a timelapse of a city skyline at dusk, cinematic", * durationSeconds: 8, * }); * if (!error) download(data.video); */ export declare function video(params: VideoParams): Promise; //#endregion //# sourceMappingURL=video.d.mts.map