import { APIResource } from "../../core/resource.js"; import { APIPromise } from "../../core/api-promise.js"; import { RequestOptions } from "../../internal/request-options.js"; export declare class Description extends APIResource { /** * Get the description of the given `modelId` */ retrieve(modelID: string, query?: DescriptionRetrieveParams | null | undefined, options?: RequestOptions): APIPromise; /** * Update the markdown description of the given `modelId` */ update(modelID: string, params: DescriptionUpdateParams, options?: RequestOptions): APIPromise; } export interface DescriptionRetrieveResponse { description: DescriptionRetrieveResponse.Description; } export declare namespace DescriptionRetrieveResponse { interface Description { /** * The list of assets referenced by the Markdown `{asset}` tag in the description. */ assets: Array; /** * The list of models referenced by the Markdown `{model}` tag in the description. */ models: Array; /** * The markdown description of the model (ex: `# My model`). We allow the * `{asset:}` and `{model:}` tags. */ value: string; } namespace Description { interface Asset { /** * The asset ID (example: "asset_GTrL3mq4SXWyMxkOHRxlpw") */ id: string; /** * The author user ID (example: "dcf121faaa1a0a0bbbd9ca1b73d62aea") */ authorId: string; /** * The kind of asset */ kind: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'text' | 'video'; /** * The mime type of the asset (example: "image/png") */ mimeType: string; /** * The owner (project) ID (example: "proj_23tlk332lkht3kl2" or * "team_dlkhgs23tlk3hlkth32lkht3kl2" for old teams) */ ownerId: string; /** * The privacy of the asset */ privacy: 'private' | 'public' | 'unlisted'; /** * The properties of the asset, content may depend on the kind of asset returned */ properties: Asset.Properties; /** * source of the asset */ source: '3d23d' | '3d23d:texture' | '3d:texture' | '3d:texture:albedo' | '3d:texture:metallic' | '3d:texture:mtl' | '3d:texture:normal' | '3d:texture:roughness' | 'audio2audio' | 'audio2txt' | 'audio2video' | 'background-removal' | 'canvas' | 'canvas-drawing' | 'canvas-export' | 'detection' | 'generative-fill' | 'image-prompt-editing' | 'img23d' | 'img2img' | 'img2splat' | 'img2txt' | 'img2video' | 'inference-control-net' | 'inference-control-net-img' | 'inference-control-net-inpainting' | 'inference-control-net-inpainting-ip-adapter' | 'inference-control-net-ip-adapter' | 'inference-control-net-reference' | 'inference-control-net-texture' | 'inference-img' | 'inference-img-ip-adapter' | 'inference-img-texture' | 'inference-in-paint' | 'inference-in-paint-ip-adapter' | 'inference-reference' | 'inference-reference-texture' | 'inference-txt' | 'inference-txt-ip-adapter' | 'inference-txt-texture' | 'patch' | 'pixelization' | 'reframe' | 'restyle' | 'segment' | 'segmentation-image' | 'segmentation-mask' | 'skybox-3d' | 'skybox-base-360' | 'skybox-hdri' | 'texture' | 'texture:albedo' | 'texture:ao' | 'texture:edge' | 'texture:height' | 'texture:metallic' | 'texture:normal' | 'texture:smoothness' | 'txt23d' | 'txt2audio' | 'txt2img' | 'txt2txt' | 'txt2video' | 'unknown' | 'uploaded' | 'uploaded-3d' | 'uploaded-audio' | 'uploaded-avatar' | 'uploaded-text' | 'uploaded-video' | 'upscale' | 'upscale-skybox' | 'upscale-texture' | 'upscale-video' | 'vectorization' | 'video23d' | 'video2audio' | 'video2img' | 'video2video' | 'voice-clone'; /** * Signed URL to get the asset content */ url: string; /** * The original file url. * * Contains the url of the original file. without any conversion. Only available * for some specific video, audio and threeD assets. Is only specified if the given * asset data has been replaced with a new file during the creation of the asset. */ originalFileUrl?: string; /** * The asset's preview. * * Contains the assetId and the url of the preview. */ preview?: Asset.Preview; /** * The asset's thumbnail. * * Contains the assetId and the url of the thumbnail. */ thumbnail?: Asset.Thumbnail; } namespace Asset { /** * The properties of the asset, content may depend on the kind of asset returned */ interface Properties { size: number; /** * Number of animation frames if animations exist */ animationFrameCount?: number; /** * Bitrate of the media in bits per second */ bitrate?: number; /** * Number of bones if skeleton exists */ boneCount?: number; /** * Recommended preview camera mode emitted by the generator (gsplat route); passed * through to mesh-rendering verbatim. */ cameraMode?: 'aerial' | 'interior' | 'turntable'; /** * Recommended preview camera path emitted by the generator (gsplat route); passed * through to mesh-rendering verbatim. */ cameraTrajectory?: Array; /** * Number of channels of the audio */ channels?: number; /** * Number of Unicode code points in the text. Code-point-aware (so a non-BMP emoji * counts as 1) but not full grapheme-cluster aware (a ZWJ sequence still counts as * several). */ charCount?: number; /** * Classification of the audio */ classification?: 'effect' | 'interview' | 'music' | 'other' | 'sound' | 'speech' | 'text' | 'unknown'; /** * Codec name of the media */ codecName?: string; /** * Description of the audio */ description?: string; /** * Bounding box dimensions [width, height, depth] */ dimensions?: Array; /** * Duration of the media in seconds */ duration?: number; /** * Number of faces/triangles in the mesh */ faceCount?: number; /** * Format of the mesh file (e.g. 'glb', etc.) */ format?: string; /** * Frame rate of the video in frames per second */ frameRate?: number; /** * Whether the mesh has animations */ hasAnimations?: boolean; /** * True when `preview` holds the entire content unmodified — consumers can use it * directly without fetching `asset.url`. False or undefined means the content * exceeds the preview budget and consumers must fetch the full body from S3 to * read past the preview. */ hasFullPreview?: boolean; /** * Whether the mesh has normal vectors */ hasNormals?: boolean; /** * Whether the mesh has bones/skeleton */ hasSkeleton?: boolean; /** * Whether the mesh has UV coordinates */ hasUVs?: boolean; height?: number; /** * Number of frames in the video */ nbFrames?: number; /** * Leading slice of the content used for inline UI display and as a search * shortcut. Capped at TEXT_PREVIEW_MAX_BYTES (UTF-8) and always cut on a * code-point boundary so no character is split. Number of characters in the * preview varies by script (around 1024 for ASCII, ~340 for CJK, ~256 for * emoji-heavy text at the default 1 KB budget). */ preview?: string; /** * Sample rate of the media in Hz */ sampleRate?: number; /** * Transcription of the audio */ transcription?: Properties.Transcription; /** * Number of vertices in the mesh */ vertexCount?: number; width?: number; /** * Number of whitespace-separated words in the text */ wordCount?: number; } namespace Properties { /** * One explicit camera keyframe for the splat route. Several are interpolated over * the requested frames into an orbit/fly-through; a single keyframe renders a * static view. Overrides {@link SplatCameraMode} when provided. */ interface CameraTrajectory { /** * Camera eye position in the splat's world frame. */ position: Array; /** * Look-at point in the splat's world frame. */ target: Array; /** * Vertical field of view in degrees (defaults to 50 in the renderer). */ fov?: number; } /** * Transcription of the audio */ interface Transcription { text: string; } } /** * The asset's preview. * * Contains the assetId and the url of the preview. */ interface Preview { assetId: string; url: string; } /** * The asset's thumbnail. * * Contains the assetId and the url of the thumbnail. */ interface Thumbnail { assetId: string; url: string; } } interface Model { /** * The model ID (example: "model_eyVcnFJcR92BxBkz7N6g5w") */ id: string; /** * The privacy of the model (default: private) */ privacy: 'private' | 'public' | 'unlisted'; /** * The model type (example: "flux.1-lora") */ type: 'custom' | 'elevenlabs-voice' | 'flux.1' | 'flux.1-composition' | 'flux.1-kontext-dev' | 'flux.1-kontext-lora' | 'flux.1-krea-dev' | 'flux.1-krea-lora' | 'flux.1-lora' | 'flux.1-pro' | 'flux.1.1-pro-ultra' | 'flux.2-dev-edit-lora' | 'flux.2-dev-lora' | 'flux.2-klein-4b-edit-lora' | 'flux.2-klein-4b-lora' | 'flux.2-klein-9b-edit-lora' | 'flux.2-klein-9b-lora' | 'flux.2-klein-base-4b-edit-lora' | 'flux.2-klein-base-4b-lora' | 'flux.2-klein-base-9b-edit-lora' | 'flux.2-klein-base-9b-lora' | 'flux1.1-pro' | 'gpt-image-1' | 'qwen-image-2512-lora' | 'qwen-image-edit-2509-lora' | 'qwen-image-edit-2511-lora' | 'qwen-image-edit-lora' | 'qwen-image-lora' | 'zimage-de-turbo-lora' | 'zimage-lora' | 'zimage-turbo-lora'; /** * The author user ID (example: "user_VFhihHKMRZyDDnZAJwLb2Q") */ authorId?: string; /** * The model name (example: "Cinematic Realism") */ name?: string; /** * The owner ID (example: "team_VFhihHKMRZyDDnZAJwLb2Q") */ ownerId?: string; /** * The model short description (example: "This model generates highly detailed * cinematic scenes.") */ shortDescription?: string; } } } export interface DescriptionUpdateResponse { description: DescriptionUpdateResponse.Description; } export declare namespace DescriptionUpdateResponse { interface Description { /** * The list of assets referenced by the Markdown `{asset}` tag in the description. */ assets: Array; /** * The list of models referenced by the Markdown `{model}` tag in the description. */ models: Array; /** * The markdown description of the model (ex: `# My model`). We allow the * `{asset:}` and `{model:}` tags. */ value: string; } namespace Description { interface Asset { /** * The asset ID (example: "asset_GTrL3mq4SXWyMxkOHRxlpw") */ id: string; /** * The author user ID (example: "dcf121faaa1a0a0bbbd9ca1b73d62aea") */ authorId: string; /** * The kind of asset */ kind: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'text' | 'video'; /** * The mime type of the asset (example: "image/png") */ mimeType: string; /** * The owner (project) ID (example: "proj_23tlk332lkht3kl2" or * "team_dlkhgs23tlk3hlkth32lkht3kl2" for old teams) */ ownerId: string; /** * The privacy of the asset */ privacy: 'private' | 'public' | 'unlisted'; /** * The properties of the asset, content may depend on the kind of asset returned */ properties: Asset.Properties; /** * source of the asset */ source: '3d23d' | '3d23d:texture' | '3d:texture' | '3d:texture:albedo' | '3d:texture:metallic' | '3d:texture:mtl' | '3d:texture:normal' | '3d:texture:roughness' | 'audio2audio' | 'audio2txt' | 'audio2video' | 'background-removal' | 'canvas' | 'canvas-drawing' | 'canvas-export' | 'detection' | 'generative-fill' | 'image-prompt-editing' | 'img23d' | 'img2img' | 'img2splat' | 'img2txt' | 'img2video' | 'inference-control-net' | 'inference-control-net-img' | 'inference-control-net-inpainting' | 'inference-control-net-inpainting-ip-adapter' | 'inference-control-net-ip-adapter' | 'inference-control-net-reference' | 'inference-control-net-texture' | 'inference-img' | 'inference-img-ip-adapter' | 'inference-img-texture' | 'inference-in-paint' | 'inference-in-paint-ip-adapter' | 'inference-reference' | 'inference-reference-texture' | 'inference-txt' | 'inference-txt-ip-adapter' | 'inference-txt-texture' | 'patch' | 'pixelization' | 'reframe' | 'restyle' | 'segment' | 'segmentation-image' | 'segmentation-mask' | 'skybox-3d' | 'skybox-base-360' | 'skybox-hdri' | 'texture' | 'texture:albedo' | 'texture:ao' | 'texture:edge' | 'texture:height' | 'texture:metallic' | 'texture:normal' | 'texture:smoothness' | 'txt23d' | 'txt2audio' | 'txt2img' | 'txt2txt' | 'txt2video' | 'unknown' | 'uploaded' | 'uploaded-3d' | 'uploaded-audio' | 'uploaded-avatar' | 'uploaded-text' | 'uploaded-video' | 'upscale' | 'upscale-skybox' | 'upscale-texture' | 'upscale-video' | 'vectorization' | 'video23d' | 'video2audio' | 'video2img' | 'video2video' | 'voice-clone'; /** * Signed URL to get the asset content */ url: string; /** * The original file url. * * Contains the url of the original file. without any conversion. Only available * for some specific video, audio and threeD assets. Is only specified if the given * asset data has been replaced with a new file during the creation of the asset. */ originalFileUrl?: string; /** * The asset's preview. * * Contains the assetId and the url of the preview. */ preview?: Asset.Preview; /** * The asset's thumbnail. * * Contains the assetId and the url of the thumbnail. */ thumbnail?: Asset.Thumbnail; } namespace Asset { /** * The properties of the asset, content may depend on the kind of asset returned */ interface Properties { size: number; /** * Number of animation frames if animations exist */ animationFrameCount?: number; /** * Bitrate of the media in bits per second */ bitrate?: number; /** * Number of bones if skeleton exists */ boneCount?: number; /** * Recommended preview camera mode emitted by the generator (gsplat route); passed * through to mesh-rendering verbatim. */ cameraMode?: 'aerial' | 'interior' | 'turntable'; /** * Recommended preview camera path emitted by the generator (gsplat route); passed * through to mesh-rendering verbatim. */ cameraTrajectory?: Array; /** * Number of channels of the audio */ channels?: number; /** * Number of Unicode code points in the text. Code-point-aware (so a non-BMP emoji * counts as 1) but not full grapheme-cluster aware (a ZWJ sequence still counts as * several). */ charCount?: number; /** * Classification of the audio */ classification?: 'effect' | 'interview' | 'music' | 'other' | 'sound' | 'speech' | 'text' | 'unknown'; /** * Codec name of the media */ codecName?: string; /** * Description of the audio */ description?: string; /** * Bounding box dimensions [width, height, depth] */ dimensions?: Array; /** * Duration of the media in seconds */ duration?: number; /** * Number of faces/triangles in the mesh */ faceCount?: number; /** * Format of the mesh file (e.g. 'glb', etc.) */ format?: string; /** * Frame rate of the video in frames per second */ frameRate?: number; /** * Whether the mesh has animations */ hasAnimations?: boolean; /** * True when `preview` holds the entire content unmodified — consumers can use it * directly without fetching `asset.url`. False or undefined means the content * exceeds the preview budget and consumers must fetch the full body from S3 to * read past the preview. */ hasFullPreview?: boolean; /** * Whether the mesh has normal vectors */ hasNormals?: boolean; /** * Whether the mesh has bones/skeleton */ hasSkeleton?: boolean; /** * Whether the mesh has UV coordinates */ hasUVs?: boolean; height?: number; /** * Number of frames in the video */ nbFrames?: number; /** * Leading slice of the content used for inline UI display and as a search * shortcut. Capped at TEXT_PREVIEW_MAX_BYTES (UTF-8) and always cut on a * code-point boundary so no character is split. Number of characters in the * preview varies by script (around 1024 for ASCII, ~340 for CJK, ~256 for * emoji-heavy text at the default 1 KB budget). */ preview?: string; /** * Sample rate of the media in Hz */ sampleRate?: number; /** * Transcription of the audio */ transcription?: Properties.Transcription; /** * Number of vertices in the mesh */ vertexCount?: number; width?: number; /** * Number of whitespace-separated words in the text */ wordCount?: number; } namespace Properties { /** * One explicit camera keyframe for the splat route. Several are interpolated over * the requested frames into an orbit/fly-through; a single keyframe renders a * static view. Overrides {@link SplatCameraMode} when provided. */ interface CameraTrajectory { /** * Camera eye position in the splat's world frame. */ position: Array; /** * Look-at point in the splat's world frame. */ target: Array; /** * Vertical field of view in degrees (defaults to 50 in the renderer). */ fov?: number; } /** * Transcription of the audio */ interface Transcription { text: string; } } /** * The asset's preview. * * Contains the assetId and the url of the preview. */ interface Preview { assetId: string; url: string; } /** * The asset's thumbnail. * * Contains the assetId and the url of the thumbnail. */ interface Thumbnail { assetId: string; url: string; } } interface Model { /** * The model ID (example: "model_eyVcnFJcR92BxBkz7N6g5w") */ id: string; /** * The privacy of the model (default: private) */ privacy: 'private' | 'public' | 'unlisted'; /** * The model type (example: "flux.1-lora") */ type: 'custom' | 'elevenlabs-voice' | 'flux.1' | 'flux.1-composition' | 'flux.1-kontext-dev' | 'flux.1-kontext-lora' | 'flux.1-krea-dev' | 'flux.1-krea-lora' | 'flux.1-lora' | 'flux.1-pro' | 'flux.1.1-pro-ultra' | 'flux.2-dev-edit-lora' | 'flux.2-dev-lora' | 'flux.2-klein-4b-edit-lora' | 'flux.2-klein-4b-lora' | 'flux.2-klein-9b-edit-lora' | 'flux.2-klein-9b-lora' | 'flux.2-klein-base-4b-edit-lora' | 'flux.2-klein-base-4b-lora' | 'flux.2-klein-base-9b-edit-lora' | 'flux.2-klein-base-9b-lora' | 'flux1.1-pro' | 'gpt-image-1' | 'qwen-image-2512-lora' | 'qwen-image-edit-2509-lora' | 'qwen-image-edit-2511-lora' | 'qwen-image-edit-lora' | 'qwen-image-lora' | 'zimage-de-turbo-lora' | 'zimage-lora' | 'zimage-turbo-lora'; /** * The author user ID (example: "user_VFhihHKMRZyDDnZAJwLb2Q") */ authorId?: string; /** * The model name (example: "Cinematic Realism") */ name?: string; /** * The owner ID (example: "team_VFhihHKMRZyDDnZAJwLb2Q") */ ownerId?: string; /** * The model short description (example: "This model generates highly detailed * cinematic scenes.") */ shortDescription?: string; } } } export interface DescriptionRetrieveParams { /** * If set to true, returns the original asset without transformation */ originalAssets?: boolean; /** * The projectId used for ownership resource management. Either to assert ownership * or to set the owner of the resource(s) */ projectId?: string; } export interface DescriptionUpdateParams { /** * Body param: The markdown description of the model (ex: `# My model`). Set to * `null` to delete the description. */ description: string; /** * Query param: If set to true, returns the original asset without transformation */ originalAssets?: boolean; /** * Query param: The projectId used for ownership resource management. Either to * assert ownership or to set the owner of the resource(s) */ projectId?: string; } export declare namespace Description { export { type DescriptionRetrieveResponse as DescriptionRetrieveResponse, type DescriptionUpdateResponse as DescriptionUpdateResponse, type DescriptionRetrieveParams as DescriptionRetrieveParams, type DescriptionUpdateParams as DescriptionUpdateParams, }; } //# sourceMappingURL=description.d.ts.map