import { TaskResponse, AsyncTaskStatus, TaskBillingResponse, HttpClient, RequestOptions, PollingOptions, BaseClient, ClientOptions } from '@runapi.ai/core'; export { AuthenticationError, InsufficientCreditsError, NetworkError, NotFoundError, RateLimitError, RunApiError, ServiceUnavailableError, TaskFailedError, TaskTimeoutError, TimeoutError, ValidationError } from '@runapi.ai/core'; type GrokImagineTextToVideoModel = 'grok-imagine-text-to-video'; type GrokImagineImageToVideoModel = 'grok-imagine-image-to-video'; type GrokImagineVideo15FastModel = 'grok-imagine-video-1.5-fast'; type GrokImagineVideo15PreviewModel = 'grok-imagine-video-1.5-preview'; type GrokImagineImage2Model = 'grok-imagine-image-2-0'; type GrokImagineTextToImageModel = 'grok-imagine-text-to-image'; type GrokImagineEditImageModel = 'grok-imagine-edit-image'; type GrokImagineAspectRatio = '2:3' | '3:2' | '1:1' | '16:9' | '9:16'; type GrokImagineFastAspectRatio = GrokImagineAspectRatio; type GrokImaginePreviewAspectRatio = GrokImagineAspectRatio | 'auto'; type GrokImagineMotionStyle = 'fun' | 'normal' | 'spicy'; type GrokImagineResolution = '480p' | '720p'; type GrokImagineFastResolution = GrokImagineResolution; type GrokImagineExtensionDurationSeconds = 6 | 10; interface TaskCommonParams { /** URL for completion callback notifications. */ callback_url?: string; } interface TextToVideoBase extends TaskCommonParams { /** Output resolution. Default: 480p. */ output_resolution?: GrokImagineResolution; } interface GrokImagineTextToVideoClassicParams extends TextToVideoBase { model: GrokImagineTextToVideoModel; /** Text description of desired video motion, up to 5000 characters. */ prompt: string; /** Width-to-height ratio of the generated video. Default: 2:3. */ aspect_ratio?: GrokImagineAspectRatio; /** Motion style preset. Default: normal. */ motion_style?: GrokImagineMotionStyle; /** Duration in seconds (6-30). */ duration_seconds?: number; /** Content safety check toggle. */ enable_safety_checker?: boolean; } interface GrokImagineTextToVideoPreviewParams extends TextToVideoBase { model: GrokImagineVideo15PreviewModel; /** Text description of desired video motion, up to 4096 characters. */ prompt: string; /** Width-to-height ratio of the generated video. Default: auto. */ aspect_ratio?: GrokImaginePreviewAspectRatio; /** Duration in seconds (1-15). Default: 8. */ duration_seconds?: number; motion_style?: never; enable_safety_checker?: never; } interface GrokImagineTextToVideoFastParams extends TaskCommonParams { model: GrokImagineVideo15FastModel; /** Text description of desired video motion. */ prompt: string; /** Optional reference images used to guide the generated video. */ reference_image_urls?: string[]; /** Width-to-height ratio of the generated video. */ aspect_ratio?: GrokImagineFastAspectRatio; /** Duration in seconds (1-30). Default: 8. */ duration_seconds?: number; /** Output resolution. Default: 480p. */ output_resolution?: GrokImagineFastResolution; motion_style?: never; enable_safety_checker?: never; } type GrokImagineTextToVideoParams = GrokImagineTextToVideoClassicParams | GrokImagineTextToVideoFastParams | GrokImagineTextToVideoPreviewParams; interface ImageToVideoClassicBase extends TaskCommonParams { model: GrokImagineImageToVideoModel; /** Optional text description for the desired motion. */ prompt?: string; motion_style?: GrokImagineMotionStyle; duration_seconds?: number; output_resolution?: GrokImagineResolution; aspect_ratio?: GrokImagineAspectRatio; enable_safety_checker?: boolean; } /** Image-to-video using an external image URL. */ interface GrokImagineImageToVideoUrlParams extends ImageToVideoClassicBase { /** Source image URL. Mutually exclusive with source_task_id. */ source_image_url: string; source_task_id?: never; index?: never; } /** * Image-to-video using a prior text-to-image task. * Runs image-to-video against one of the 6 images generated by that task. */ interface GrokImagineImageToVideoTaskParams extends ImageToVideoClassicBase { /** Task id from a prior grok-imagine text-to-image task. */ source_task_id: string; /** 0-based index (0-5) selecting which generated image to use. */ index?: number; source_image_url?: never; } interface GrokImagineImageToVideoPreviewParams extends TaskCommonParams { model: GrokImagineVideo15PreviewModel; /** Source image URL. */ source_image_url: string; /** Optional text description for the desired motion, up to 4096 characters. */ prompt?: string; aspect_ratio?: GrokImaginePreviewAspectRatio; /** Duration in seconds (1-15). Default: 8. */ duration_seconds?: number; output_resolution?: GrokImagineResolution; source_task_id?: never; index?: never; motion_style?: never; enable_safety_checker?: never; } interface GrokImagineImageToVideoFastParams extends TaskCommonParams { model: GrokImagineVideo15FastModel; /** Source image URL. */ source_image_url: string; /** Optional reference images used to guide the generated video. */ reference_image_urls?: string[]; /** Optional text description for the desired motion. */ prompt?: string; aspect_ratio?: GrokImagineFastAspectRatio; /** Duration in seconds (1-30). Default: 8. */ duration_seconds?: number; /** Output resolution. Default: 480p. */ output_resolution?: GrokImagineFastResolution; source_task_id?: never; index?: never; motion_style?: never; enable_safety_checker?: never; } type GrokImagineImageToVideoParams = GrokImagineImageToVideoUrlParams | GrokImagineImageToVideoTaskParams | GrokImagineImageToVideoFastParams | GrokImagineImageToVideoPreviewParams; interface GrokImagineTextToImageStandardParams extends TaskCommonParams { model: GrokImagineTextToImageModel; /** Text description of desired image content, up to 5000 characters. */ prompt: string; /** Width-to-height ratio of the generated image. Default: 1:1. */ aspect_ratio?: GrokImagineAspectRatio; /** Content safety check toggle. */ enable_safety_checker?: boolean; /** Enable quality mode (slower but higher precision). Default: false. */ enable_pro?: boolean; } interface GrokImagineImage2TextToImageParams extends TaskCommonParams { model: GrokImagineImage2Model; /** Text description of desired image content. */ prompt: string; /** Required width-to-height ratio of the generated image. */ aspect_ratio: GrokImagineAspectRatio; enable_safety_checker?: never; enable_pro?: never; } type GrokImagineTextToImageParams = GrokImagineTextToImageStandardParams | GrokImagineImage2TextToImageParams; interface GrokImagineSegmentMapImageURLParams extends TaskCommonParams { model: GrokImagineImage2Model; /** Public image URL that the service can fetch. */ image_url: string; source_task_id?: never; } interface GrokImagineSegmentMapSourceTaskParams extends TaskCommonParams { model: GrokImagineImage2Model; /** Compatibility input; use image_url instead. */ source_task_id: string; image_url?: never; } type GrokImagineSegmentMapParams = GrokImagineSegmentMapImageURLParams | GrokImagineSegmentMapSourceTaskParams; interface GrokImagineStandardEditImageParams extends TaskCommonParams { model: GrokImagineEditImageModel; /** Optional text prompt describing the desired output. */ prompt?: string; /** Source image URL. */ source_image_url: string; enable_safety_checker?: boolean; } interface GrokImagineImage2EditImageParams extends TaskCommonParams { model: GrokImagineImage2Model; /** Optional editing instruction, up to 390000 characters. */ prompt?: string; /** Required width-to-height ratio of the edited image. */ aspect_ratio: GrokImaginePreviewAspectRatio; /** Source image URLs, from one to five entries. */ source_image_urls: string[]; source_image_url?: never; source_task_id?: never; mask_indices?: never; enable_safety_checker?: never; } type GrokImagineEditImageParams = GrokImagineStandardEditImageParams | GrokImagineImage2EditImageParams; interface GrokImagineExtendParams extends TaskCommonParams { /** Task id from a prior grok-imagine video generation task. */ source_task_id: string; /** Text description of the desired motion for the extended segment. */ prompt: string; /** Starting position of the extension (seconds into the original video). */ start_seconds: number; /** Duration of the extension in seconds: 6 or 10. */ extension_duration_seconds: GrokImagineExtensionDurationSeconds; } interface GrokImagineUpscaleParams extends TaskCommonParams { /** Task id from a prior grok-imagine video generation task. */ source_task_id: string; } interface TaskCreateResponse extends TaskBillingResponse { id: string; } interface MediaUrl { url: string; } interface GrokImagineVideoResponse extends TaskResponse { id: string; status: AsyncTaskStatus; videos?: MediaUrl[]; error?: string; [key: string]: unknown; } interface GrokImagineImageResponse extends TaskResponse { id: string; status: AsyncTaskStatus; images?: MediaUrl[]; error?: string; [key: string]: unknown; } interface GrokImagineSegment { url: string; name?: string; index?: number; } interface GrokImagineSegmentMapResponse extends TaskResponse { id: string; status: AsyncTaskStatus; segments?: GrokImagineSegment[]; error?: string; [key: string]: unknown; } type CompletedGrokImagineVideoResponse = GrokImagineVideoResponse & { status: 'completed'; videos: MediaUrl[]; }; type CompletedGrokImagineImageResponse = GrokImagineImageResponse & { status: 'completed'; images: MediaUrl[]; }; type CompletedGrokImagineSegmentMapResponse = GrokImagineSegmentMapResponse & { status: 'completed'; segments: GrokImagineSegment[]; }; /** Generates videos from text prompts with configurable aspect ratio, duration, and resolution. */ declare class TextToVideo { private readonly http; constructor(http: HttpClient); /** * Generate a video and wait until complete. * @param params Text-to-video parameters. * @param options Per-request and polling overrides. * @returns The completed video with results. */ run(params: GrokImagineTextToVideoParams, options?: RequestOptions & PollingOptions): Promise; /** * Create a text-to-video task; returns immediately with a task id. * @param params Text-to-video parameters. * @param options Per-request overrides. * @returns The task creation result with id. */ create(params: GrokImagineTextToVideoParams, options?: RequestOptions): Promise; /** * Fetch the current status of a text-to-video task. * @param id The task id. * @param options Per-request overrides. * @returns The current video task status. */ get(id: string, options?: RequestOptions): Promise; } /** Generates videos from reference images or a prior text-to-image task. */ declare class ImageToVideo { private readonly http; constructor(http: HttpClient); /** * Generate a video and wait until complete. * @param params Image-to-video parameters. * @param options Per-request and polling overrides. * @returns The completed video with results. */ run(params: GrokImagineImageToVideoParams, options?: RequestOptions & PollingOptions): Promise; /** * Create an image-to-video task; returns immediately with a task id. * @param params Image-to-video parameters. * @param options Per-request overrides. * @returns The task creation result with id. */ create(params: GrokImagineImageToVideoParams, options?: RequestOptions): Promise; /** * Fetch the current status of an image-to-video task. * @param id The task id. * @param options Per-request overrides. * @returns The current video task status. */ get(id: string, options?: RequestOptions): Promise; } /** Generates images from text prompts. */ declare class TextToImage { private readonly http; constructor(http: HttpClient); /** * Generate an image and wait until complete. * @param params Text-to-image parameters. * @param options Per-request and polling overrides. * @returns The completed image with results. */ run(params: GrokImagineTextToImageParams, options?: RequestOptions & PollingOptions): Promise; /** * Create a text-to-image task; returns immediately with a task id. * @param params Text-to-image parameters. * @param options Per-request overrides. * @returns The task creation result with id. */ create(params: GrokImagineTextToImageParams, options?: RequestOptions): Promise; /** * Fetch the current status of a text-to-image task. * @param id The task id. * @param options Per-request overrides. * @returns The current image task status. */ get(id: string, options?: RequestOptions): Promise; } /** Creates an editable segmentation map from a public image URL. */ declare class SegmentMap { private readonly http; constructor(http: HttpClient); run(params: GrokImagineSegmentMapParams, options?: RequestOptions & PollingOptions): Promise; create(params: GrokImagineSegmentMapParams, options?: RequestOptions): Promise; get(id: string, options?: RequestOptions): Promise; } /** Applies prompt-guided edits to a source image. */ declare class EditImage { private readonly http; constructor(http: HttpClient); /** * Edit an image and wait until complete. * @param params Image edit parameters. * @param options Per-request and polling overrides. * @returns The completed edit with images. */ run(params: GrokImagineEditImageParams, options?: RequestOptions & PollingOptions): Promise; /** * Create an image edit task; returns immediately with a task id. * @param params Image edit parameters. * @param options Per-request overrides. * @returns The task creation result with id. */ create(params: GrokImagineEditImageParams, options?: RequestOptions): Promise; /** * Fetch the current status of an image edit task. * @param id The task id. * @param options Per-request overrides. * @returns The current image task status. */ get(id: string, options?: RequestOptions): Promise; } /** Appends new footage to a previously generated video from a chosen timestamp. */ declare class Extensions { private readonly http; constructor(http: HttpClient); /** * Extend a video and wait until complete. * @param params Video extension parameters. * @param options Per-request and polling overrides. * @returns The completed video with results. */ run(params: GrokImagineExtendParams, options?: RequestOptions & PollingOptions): Promise; /** * Create a video extension task; returns immediately with a task id. * @param params Video extension parameters. * @param options Per-request overrides. * @returns The task creation result with id. */ create(params: GrokImagineExtendParams, options?: RequestOptions): Promise; /** * Fetch the current status of a video extension task. * @param id The task id. * @param options Per-request overrides. * @returns The current video task status. */ get(id: string, options?: RequestOptions): Promise; } /** Upscales a previously generated image to higher resolution. */ declare class Upscales { private readonly http; constructor(http: HttpClient); /** * Upscale an image and wait until complete. * @param params Upscale parameters. * @param options Per-request and polling overrides. * @returns The completed upscale with results. */ run(params: GrokImagineUpscaleParams, options?: RequestOptions & PollingOptions): Promise; /** * Create an upscale task; returns immediately with a task id. * @param params Upscale parameters. * @param options Per-request overrides. * @returns The task creation result with id. */ create(params: GrokImagineUpscaleParams, options?: RequestOptions): Promise; /** * Fetch the current status of an upscale task. * @param id The task id. * @param options Per-request overrides. * @returns The current upscale task status. */ get(id: string, options?: RequestOptions): Promise; } /** * Grok-Imagine multimodal generation API client. * * Image generation, video generation, image editing, video extension, * and video upscaling. * * @example * ```typescript * const client = new GrokImagineClient({ * apiKey: 'your-api-key', * baseUrl: 'https://runapi.ai', * }); * * const result = await client.textToVideo.run({ * model: 'grok-imagine-text-to-video', * prompt: 'A drone shot over a neon cityscape at night', * output_resolution: '720p', * }); * ``` */ declare class GrokImagineClient extends BaseClient { /** Text-to-video generation. */ readonly textToVideo: TextToVideo; /** Image-to-video generation (external URLs or prior text-to-image task). */ readonly imageToVideo: ImageToVideo; /** Text-to-image generation. */ readonly textToImage: TextToImage; /** Segment-map generation from an Image 2.0 text-to-image task. */ readonly segmentMap: SegmentMap; /** Prompt-guided image editing. */ readonly editImage: EditImage; /** Extend a previously generated video. */ readonly extensions: Extensions; /** Upscale a previously generated video. */ readonly upscales: Upscales; constructor(options?: ClientOptions); } export { type CompletedGrokImagineImageResponse, type CompletedGrokImagineSegmentMapResponse, type CompletedGrokImagineVideoResponse, type GrokImagineAspectRatio, GrokImagineClient, type GrokImagineEditImageModel, type GrokImagineEditImageParams, type GrokImagineExtendParams, type GrokImagineExtensionDurationSeconds, type GrokImagineFastAspectRatio, type GrokImagineFastResolution, type GrokImagineImage2EditImageParams, type GrokImagineImage2Model, type GrokImagineImage2TextToImageParams, type GrokImagineImageResponse, type GrokImagineImageToVideoFastParams, type GrokImagineImageToVideoModel, type GrokImagineImageToVideoParams, type GrokImagineImageToVideoPreviewParams, type GrokImagineImageToVideoTaskParams, type GrokImagineImageToVideoUrlParams, type GrokImagineMotionStyle, type GrokImaginePreviewAspectRatio, type GrokImagineResolution, type GrokImagineSegment, type GrokImagineSegmentMapImageURLParams, type GrokImagineSegmentMapParams, type GrokImagineSegmentMapResponse, type GrokImagineSegmentMapSourceTaskParams, type GrokImagineStandardEditImageParams, type GrokImagineTextToImageModel, type GrokImagineTextToImageParams, type GrokImagineTextToImageStandardParams, type GrokImagineTextToVideoClassicParams, type GrokImagineTextToVideoFastParams, type GrokImagineTextToVideoModel, type GrokImagineTextToVideoParams, type GrokImagineTextToVideoPreviewParams, type GrokImagineUpscaleParams, type GrokImagineVideo15FastModel, type GrokImagineVideo15PreviewModel, type GrokImagineVideoResponse, type MediaUrl, type TaskCreateResponse };