import type { VideoCallContext, VideoContent, VideoJobRef, VideoJobState, VideoModelCapabilities, VideoProvider, VideoProviderInfo, VideoProviderRequest } from './index.js'; /** Options for the Runway video provider. */ export interface RunwayVideoProviderConfig { /** The API secret, sent as a bearer token. */ apiKey: string; /** API base URL. Defaults to `https://api.dev.runwayml.com`. */ baseUrl?: string; /** The `X-Runway-Version` header. Defaults to `2024-11-06`. */ version?: string; /** The model a request naming none uses. Defaults to `gen4.5`. */ defaultModel?: string; /** The models served. Defaults to every text-to-video model Runway names. */ models?: readonly string[]; /** Where a model differs from what the adapter knows of it. */ byModel?: Record>; /** Headers added to every API request, not to a download. */ defaultHeaders?: Record; /** Replaces the global `fetch`. */ fetch?: typeof globalThis.fetch; } /** * Runway behind the video contract. A job is a task: its id is the ref, any worker polls it, and each * video is read from the signed URL the finished task lists, which takes no credentials. A request's * shape and size become Runway's `ratio`, such as `1280:720`; a ratio of Runway's own passes through * as `aspectRatio`. Fields a model takes that the contract does not, such as Seedance's, go in * `providerOptions`. */ export declare class RunwayVideoProvider implements VideoProvider { private readonly config; /** Provider name, capabilities, and models. */ readonly info: VideoProviderInfo; private readonly baseUrl; private readonly fetchImplementation; constructor(config: RunwayVideoProviderConfig); /** * Starts a text-to-video task, an image-to-video one when the request has a first frame, or a * video-to-video one when it has a video to extend or edit. */ submit(request: VideoProviderRequest, context: VideoCallContext): Promise; /** A video-to-video task: the video given, or the one a task of this account made, changed or continued. */ private fromVideo; /** A video as Runway takes it: by URL, inline up to 5 MB, or the signed URL of a task's own video. */ private videoUri; /** A request's reference images and reference videos, as the model names them. */ private references; /** Reads the task. */ poll(ref: VideoJobRef, context: VideoCallContext): Promise; /** Streams one video from the signed URL the finished task lists. */ download(ref: VideoJobRef, index: number, context: VideoCallContext): Promise; /** Cancels a running task. */ cancel(ref: VideoJobRef, context: VideoCallContext): Promise; /** Deletes a finished task and its videos. */ remove(ref: VideoJobRef, context: VideoCallContext): Promise; private task; private call; }