@nodaro/sdk 2.11.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _nodaro_shared from '@nodaro/shared';
2
- import { CollaboratorRole, GenericNode, GenericEdge, WorkflowExport, WorkflowImportReport, WorkflowVisibility, NodeExecutionStateWire, Scene3DReference, Scene3DPlan, Scene3DEditOperation, Scene3DV2EditOperation, Pro3DRenderSource, Pro3DRenderEngine, Pro3DRenderQuality, Pro3DRenderStyle, Scene3DJobOutputAny, Pro3DRenderJobOutput as Pro3DRenderJobOutput$1, Pro3DRenderCapabilities, Scene3DPlanV2, Pro3DRenderQuote as Pro3DRenderQuote$1, ModelInputAdjustment, ConnectedReference, DescribedReference, Scene3DAssetRef, TtsProvider, EntityStyle, CharacterAspectRatio, CharacterAttachColumn, LocationAssetType, LocationAttachColumn, SurroundDirection, ObjectAssetType, ObjectAttachColumn, ObjectAspectRatio, CreatureAttachColumn, PipelineInput, PipelineStatus, PipelineMode, PipelineStageName, SubGateName, ChatEnabledStage, ProposedChange, ReduceStrategyId, ReduceMeta, Voice, VoiceLibraryParams, VoiceLibraryResponse, VoiceClone, AudioFxPreset, OverlayAnchor, BrowseCommunityParams, BrowseCommunityResult, CommunityCard, CommunityFullDetail, CommunityEntityType, CloneListingResult, FavoriteListingResult, CommunityReportReason, ReportListingResult, PublishListingParams, PublishListingResult, SharedListing, OrganizationView, OrgKind, OrgSettings, OrgPage, OrgMemberView, MemberStatus, WorkspaceRole, InvitationDelivery, InvitationState, InvitationView, InvitationPreview, OrgAuditEntry, UsageQuery, UsageReport, UsageLogEntry, WorkspaceSummary, WorkspaceView, WorkspaceSettings, WorkspaceMemberView, JoinCodeView, MeOrganizations } from '@nodaro/shared';
3
- export { AudioFxPreset, BrowseCommunityParams, BrowseCommunityResult, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_STYLES, OBJECT_ASPECT_DEFAULTS as CREATURE_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS as CREATURE_ASPECT_OPTIONS, CREATURE_ATTACH_COLUMNS, CharacterAspectRatio, CloneListingResult, CommunityCard, CommunityEntityType, CommunityReportReason, CommunitySort, ConnectedReference, ObjectAspectRatio as CreatureAspectRatio, CreatureAttachColumn, DescribedReference, EntityStyle, FavoriteListingResult, GenericEdge, GenericNode, InvitationDelivery, InvitationPreview, InvitationState, InvitationView, JoinCodeView, LOCATION_ASSET_TYPES, LOCATION_ATTACH_COLUMNS, LocationAssetType, LocationAttachColumn, MeOrganizations, MemberStatus, NodeExecutionStatus, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ATTACH_COLUMNS, OUTPUT_BEARING_NODE_STATUSES, ObjectAspectRatio, ObjectAssetType, ObjectAttachColumn, OrgAuditEntry, OrgErrorCode, OrgKind, OrgMemberView, OrgPage, OrgRole, OrgSettings, OrgStatus, OrganizationSummary, OrganizationView, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PipelineStageName, PromptAffixFields, PublishListingParams, PublishListingResult, ReduceMeta, ReduceStrategyId, ReportListingResult, SURROUND_DIRECTIONS, SharedListing, SharedVoice, SurroundDirection, USAGE_GROUP_BYS, UsageGroupBy, UsageLogEntry, UsageQuery, UsageReport, UsageReportRow, UsageReportTotals, UsageVarianceRow, Voice, VoiceClone, VoiceLibraryParams, VoiceLibraryResponse, WORKSPACE_HEADER, WorkflowExport, WorkflowExportCharacter, WorkflowExportLocation, WorkflowExportObject, WorkspaceMemberView, WorkspaceRole, WorkspaceSettings, WorkspaceSummary, WorkspaceView, nodeStateMayCarryOutput } from '@nodaro/shared';
2
+ import { CollaboratorRole, GenericNode, GenericEdge, WorkflowExport, WorkflowImportReport, WorkflowVisibility, NodeExecutionStateWire, Scene3DReference, Scene3DPlan, Scene3DEditOperation, Scene3DV2EditOperation, Pro3DRenderSource, Pro3DRenderEngine, Pro3DRenderQuality, Pro3DRenderStyle, Scene3DJobOutputAny, Pro3DRenderJobOutput as Pro3DRenderJobOutput$1, Pro3DRenderCapabilities, Scene3DPlanV2, Pro3DRenderQuote as Pro3DRenderQuote$1, ModelInputAdjustment, ConnectedReference, DescribedReference, Scene3DAssetRef, TtsProvider, EntityStyle, CharacterAspectRatio, CharacterAttachColumn, LocationAssetType, LocationAttachColumn, SurroundDirection, ObjectAssetType, ObjectAttachColumn, ObjectAspectRatio, CreatureAttachColumn, PipelineInput, PipelineStatus, PipelineMode, PipelineStageName, SubGateName, ChatEnabledStage, ProposedChange, ReduceStrategyId, ReduceMeta, Voice, VoiceLibraryParams, VoiceLibraryResponse, VoiceClone, AudioFxPreset, CaptionLookId, SupportedFontName, TranscribeLane, CaptionStyle, OverlayAnchor, TranscribeProvider, Transcript, CharacterMotionMetadata, BrowseCommunityParams, BrowseCommunityResult, CommunityCard, CommunityFullDetail, CommunityEntityType, CloneListingResult, FavoriteListingResult, CommunityReportReason, ReportListingResult, PublishListingParams, PublishListingResult, SharedListing, OrganizationView, OrgKind, OrgSettings, OrgPage, OrgMemberView, MemberStatus, WorkspaceRole, InvitationDelivery, InvitationState, InvitationView, InvitationPreview, OrgAuditEntry, UsageQuery, UsageReport, UsageLogEntry, WorkspaceSummary, WorkspaceView, WorkspaceSettings, WorkspaceMemberView, JoinCodeView, Edl, EditPlanMode, EditPlanTier, MeOrganizations } from '@nodaro/shared';
3
+ export { AudioFxPreset, BrowseCommunityParams, BrowseCommunityResult, CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_STYLES, OBJECT_ASPECT_DEFAULTS as CREATURE_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS as CREATURE_ASPECT_OPTIONS, CREATURE_ATTACH_COLUMNS, ChapterSet, CharacterAspectRatio, CloneListingResult, CommunityCard, CommunityEntityType, CommunityReportReason, CommunitySort, ConnectedReference, ObjectAspectRatio as CreatureAspectRatio, CreatureAttachColumn, DescribedReference, EditPlanMode, EditPlanTier, Edl, EdlClipSet, EntityStyle, FavoriteListingResult, GenericEdge, GenericNode, InvitationDelivery, InvitationPreview, InvitationState, InvitationView, JoinCodeView, LOCATION_ASSET_TYPES, LOCATION_ATTACH_COLUMNS, LocationAssetType, LocationAttachColumn, MeOrganizations, MemberStatus, NodeExecutionStatus, OBJECT_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS, OBJECT_ASSET_TYPES, OBJECT_ATTACH_COLUMNS, OUTPUT_BEARING_NODE_STATUSES, ObjectAspectRatio, ObjectAssetType, ObjectAttachColumn, OrgAuditEntry, OrgErrorCode, OrgKind, OrgMemberView, OrgPage, OrgRole, OrgSettings, OrgStatus, OrganizationSummary, OrganizationView, PROMPT_PREFIX_KEY, PROMPT_SUFFIX_KEY, PipelineStageName, PromptAffixFields, PublishListingParams, PublishListingResult, ReduceMeta, ReduceStrategyId, ReportListingResult, SURROUND_DIRECTIONS, SharedListing, SharedVoice, SurroundDirection, TranscribeLane, TranscribeProvider, Transcript, USAGE_GROUP_BYS, UsageGroupBy, UsageLogEntry, UsageQuery, UsageReport, UsageReportRow, UsageReportTotals, UsageVarianceRow, Voice, VoiceClone, VoiceLibraryParams, VoiceLibraryResponse, WORKSPACE_HEADER, WorkflowExport, WorkflowExportCharacter, WorkflowExportLocation, WorkflowExportObject, WorkspaceMemberView, WorkspaceRole, WorkspaceSettings, WorkspaceSummary, WorkspaceView, nodeStateMayCarryOutput, unwrapEditPlanOutput } from '@nodaro/shared';
4
4
  import { DirectionFields, SubjectFields, PersonValue, WizardNodeContext, WizardQuestion, WizardSelection, RecommendedModel, FactoryPreset } from '@nodaro/prompts';
5
5
  export { PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PersonValue, RecommendedModel, WizardNodeContext, WizardOption, WizardQuestion, WizardSelection, buildPersonHints } from '@nodaro/prompts';
6
6
 
@@ -1049,9 +1049,20 @@ interface GenerateVideoParams extends StructuredReferenceParams, ReferenceCaptio
1049
1049
  provider?: string;
1050
1050
  /** Start-frame image (image-to-video). */
1051
1051
  imageUrl?: string;
1052
+ /** Closing frame, paired with `imageUrl` on models that support one. */
1053
+ endFrameUrl?: string;
1052
1054
  referenceImageUrls?: string[];
1053
1055
  referenceVideoUrls?: string[];
1054
1056
  referenceAudioUrls?: string[];
1057
+ /** How a start/end frame is reshaped before the model sees it. Default
1058
+ * `"resolution"`: resize it to the pixel size that model actually renders,
1059
+ * which is what stops the provider reshaping it mid-clip. `"ratio"` corrects
1060
+ * only the aspect; `"original"` sends it untouched. */
1061
+ frameFit?: "original" | "ratio" | "resolution";
1062
+ /** Whether the frame travels as a real start frame or as a reference image
1063
+ * bound in the prompt as the opening frame. Default `"auto"`, which picks per
1064
+ * model. Ignored by models that take no reference images. */
1065
+ frameDelivery?: "auto" | "frame" | "reference";
1055
1066
  [k: string]: unknown;
1056
1067
  }
1057
1068
  /**
@@ -4771,6 +4782,73 @@ declare class LlmResource {
4771
4782
  }>;
4772
4783
  }
4773
4784
 
4785
+ /** One word-timed caption entry (one per WORD for the kinetic styles). */
4786
+ interface CaptionEntry {
4787
+ text: string;
4788
+ startMs: number;
4789
+ endMs: number;
4790
+ timestampMs?: number | null;
4791
+ confidence?: number | null;
4792
+ }
4793
+ /** Look + motion levers — see {@link MediaResource.addCaptions}. `look` is a
4794
+ * named preset the explicit levers override; an unset look renders as `outline`
4795
+ * (the default). The STYLING levers (`look`, `fontFamily`, `fontWeight`,
4796
+ * `strokeColor`/`strokeWidth`, `uppercase`, `positionY`, `maxWordsPerLine`) now
4797
+ * apply to the static `subtitle` style too — a subtitle carrying any of them
4798
+ * renders via Remotion. Only `highlightColor` (no spoken-word cursor to colour)
4799
+ * and `animate` (no motion to freeze) stay kinetic-only and are rejected (400)
4800
+ * on `subtitle`. */
4801
+ interface CaptionLookInput {
4802
+ look?: CaptionLookId;
4803
+ fontFamily?: SupportedFontName;
4804
+ fontWeight?: number;
4805
+ strokeColor?: string;
4806
+ strokeWidth?: number;
4807
+ highlightColor?: string;
4808
+ uppercase?: boolean;
4809
+ positionY?: number;
4810
+ /** Cap on how many words one caption LINE (or `tiktok-words` page) may hold,
4811
+ * 1-20, on TOP of the frame-width budget, sentence ends and pauses that
4812
+ * already close a line — 1-2 gives the punchy CapCut read, unset fits the
4813
+ * width. Applies to `word-highlight` / `karaoke` / `bouncy` / `tiktok-words`
4814
+ * and to a Remotion-rendered `subtitle`; inert on `word-pop` (always one
4815
+ * word). */
4816
+ maxWordsPerLine?: number;
4817
+ /** Kinetic styles only. `false` freezes the per-word MOTION — the grouping,
4818
+ * line-holding and spoken-word highlight stay, only the movement stops;
4819
+ * default `true`. Rejected (400) on the static `subtitle` style. */
4820
+ animate?: boolean;
4821
+ }
4822
+ /** One caption SEGMENT: a time range with optional style/look overrides and its
4823
+ * own words (`text`/`captions`, else the shared transcript filtered to range).
4824
+ * A segmented render is entirely Remotion, so any `style` is valid here. */
4825
+ interface CaptionSegmentInput extends CaptionLookInput {
4826
+ startMs: number;
4827
+ endMs: number;
4828
+ style?: CaptionStyle;
4829
+ position?: "bottom" | "top" | "center";
4830
+ fontSize?: number;
4831
+ color?: string;
4832
+ backgroundColor?: string;
4833
+ text?: string;
4834
+ captions?: CaptionEntry[];
4835
+ }
4836
+ /** {@link MediaResource.addCaptions} input. */
4837
+ interface AddCaptionsInput extends CaptionLookInput {
4838
+ videoUrl: string;
4839
+ text?: string;
4840
+ captions?: CaptionEntry[];
4841
+ /** Transcribe the video's audio when no text/captions are given (default true). */
4842
+ autoTranscribe?: boolean;
4843
+ transcribeProvider?: TranscribeLane;
4844
+ style?: CaptionStyle;
4845
+ position?: "bottom" | "top" | "center";
4846
+ fontSize?: number;
4847
+ color?: string;
4848
+ backgroundColor?: string;
4849
+ /** Apply different treatments to time ranges in one call (non-overlapping). */
4850
+ segments?: CaptionSegmentInput[];
4851
+ }
4774
4852
  /**
4775
4853
  * Media ingestion + trimming — the source-preparation steps a Voice Changer Pro
4776
4854
  * flow (or any pipeline) needs before it has a clip to work on: pull a social
@@ -4801,15 +4879,20 @@ declare class MediaResource {
4801
4879
  * Download a social video (YouTube / TikTok / Instagram / X / Facebook) into
4802
4880
  * your storage (`POST /v1/download-video`). `maxHeight` caps the resolution
4803
4881
  * (default "best"); `sectionStartSec` + `sectionEndSec` (both-or-neither) fetch
4804
- * ONLY that time range instead of the whole video. Returns a `downloadId`;
4805
- * progress streams from `GET /v1/download-video/progress/:downloadId`
4806
- * (server-sent events) and the finished file lands in your library.
4882
+ * ONLY that time range instead of the whole video. A download that arrives
4883
+ * with no audio stream FAILS by default (it is usually a degraded source
4884
+ * response, and is retried through other routes first); pass
4885
+ * `requireAudio: false` to accept a clip that really has no sound. Returns a
4886
+ * `downloadId`; progress streams from
4887
+ * `GET /v1/download-video/progress/:downloadId` (server-sent events) and the
4888
+ * finished file lands in your library.
4807
4889
  */
4808
4890
  downloadVideo(input: {
4809
4891
  url: string;
4810
4892
  maxHeight?: number;
4811
4893
  sectionStartSec?: number;
4812
4894
  sectionEndSec?: number;
4895
+ requireAudio?: boolean;
4813
4896
  }): Promise<{
4814
4897
  downloadId: string;
4815
4898
  }>;
@@ -4981,6 +5064,46 @@ declare class MediaResource {
4981
5064
  }): Promise<{
4982
5065
  jobId: string;
4983
5066
  }>;
5067
+ /**
5068
+ * Burn captions into a video (`POST /v1/add-captions`). Give the words as
5069
+ * `text`, word-timed `captions[]`, or let it transcribe (`autoTranscribe`,
5070
+ * the default when neither is set).
5071
+ *
5072
+ * `style: "subtitle"` renders statically (FFmpeg) UNLESS it carries a styling
5073
+ * lever, in which case it — like the KINETIC styles (`word-highlight` /
5074
+ * `karaoke` / `tiktok-words` / `word-pop` / `bouncy`) — renders via Remotion.
5075
+ * `look` picks a preset — `outline` (Montserrat 900, UPPERCASE, black outline,
5076
+ * yellow spoken word — the TikTok/Reels read) or `clean`; an UNSET look renders
5077
+ * as `outline`. The explicit STYLING levers (`fontFamily`, `fontWeight`,
5078
+ * `strokeColor`/`strokeWidth`, `uppercase`, `positionY`, `maxWordsPerLine`)
5079
+ * override individual fields of it and now apply to `subtitle` too. Only
5080
+ * `highlightColor` (the spoken-word cursor) and `animate` stay kinetic-only
5081
+ * and are REJECTED on `subtitle`.
5082
+ *
5083
+ * `animate` (default true) freezes the per-word MOTION on the kinetic styles
5084
+ * when set to false — the grouping, line-holding and spoken-word highlight
5085
+ * stay; only the movement stops.
5086
+ *
5087
+ * `maxWordsPerLine` (1-20) caps how many words a line — or a `tiktok-words`
5088
+ * page — may hold, on top of the width budget / sentence ends / pauses that
5089
+ * already close one; it is inert on `word-pop`, which is always one word.
5090
+ * Like every lever here it exists top-level AND per segment, and a segment
5091
+ * that does not name its own inherits the top-level value.
5092
+ *
5093
+ * `segments[]` applies DIFFERENT treatments to non-overlapping time ranges in
5094
+ * one call (e.g. a large top intro, then a small bottom body); a segment that
5095
+ * names its own `look` starts fresh from that preset and does not inherit the
5096
+ * top-level explicit levers. Poll `jobs.get(jobId)`.
5097
+ *
5098
+ * `word-highlight` shows ONE held line at a time and a word's
5099
+ * `startMs`/`endMs` is its SPOKEN window (what times the highlight, not how
5100
+ * long the text is on screen) — so `captions[]` can be handed over verbatim
5101
+ * from an `audio.transcribe()` job's `output_data.words`, with
5102
+ * `autoTranscribe: false`.
5103
+ */
5104
+ addCaptions(input: AddCaptionsInput): Promise<{
5105
+ jobId: string;
5106
+ }>;
4984
5107
  /**
4985
5108
  * Trim (and extract) audio from a video or audio source
4986
5109
  * (`POST /v1/trim-audio`) to `[startTime, endTime]` seconds, in `audioFormat`
@@ -5112,11 +5235,48 @@ interface MediaProcessResult {
5112
5235
  metadata: Record<string, unknown>;
5113
5236
  }
5114
5237
 
5238
+ /**
5239
+ * One word of a {@link AudioResource.transcribe} result — caption-shaped, in
5240
+ * MILLISECONDS, and structurally the `captions[]` entry `media.addCaptions()`
5241
+ * takes, so a word list can be passed straight through. `speaker` is present
5242
+ * only on a diarized `elevenlabs-stt` run.
5243
+ */
5244
+ interface TranscribeWord {
5245
+ text: string;
5246
+ startMs: number;
5247
+ endMs: number;
5248
+ timestampMs?: number | null;
5249
+ confidence?: number | null;
5250
+ speaker?: string;
5251
+ }
5252
+ /**
5253
+ * A completed transcribe job's `output_data` (read it off `jobs.get(jobId)`).
5254
+ *
5255
+ * Mind the units: `words` and `json.words` are in MILLISECONDS, while the
5256
+ * top-level `segments` are in SECONDS (the raw per-utterance ranges) — present
5257
+ * only on the legacy lanes; `elevenlabs-stt` returns none, so read `words`.
5258
+ */
5259
+ interface TranscribeJobOutput {
5260
+ /** The full transcript as one string. */
5261
+ text: string;
5262
+ /** Detected (or requested) language code. */
5263
+ language?: string;
5264
+ /** Per-word timings, ms — present on the word-level lanes. */
5265
+ words?: TranscribeWord[];
5266
+ /** The normalized {@link Transcript} (ms), the shape `edit.*` consumes. */
5267
+ json?: Transcript;
5268
+ /** Per-utterance ranges in SECONDS — not ms, unlike everything above. */
5269
+ segments?: Array<{
5270
+ start: number;
5271
+ end: number;
5272
+ text: string;
5273
+ }>;
5274
+ }
5115
5275
  /**
5116
5276
  * Audio primitives — the building blocks Voice Changer Pro composes internally
5117
- * (separation, isolation, effect, mix, level), exposed standalone so a consumer
5118
- * can run any single step or assemble its own pipeline. Each returns a job id to
5119
- * poll (`jobs.get(jobId)`).
5277
+ * (separation, isolation, effect, mix, level) plus speech-to-text, exposed
5278
+ * standalone so a consumer can run any single step or assemble its own
5279
+ * pipeline. Each returns a job id to poll (`jobs.get(jobId)`).
5120
5280
  */
5121
5281
  declare class AudioResource {
5122
5282
  private client;
@@ -5196,6 +5356,39 @@ declare class AudioResource {
5196
5356
  }): Promise<{
5197
5357
  jobId: string;
5198
5358
  }>;
5359
+ /**
5360
+ * Transcribe an audio (or video) track to text (`POST /v1/transcribe`).
5361
+ *
5362
+ * Three engines are accepted. `elevenlabs-stt` (Scribe) is always word-level,
5363
+ * flag or not, and is the only lane that honours `diarize` (who spoke) and
5364
+ * `tagAudioEvents` (laughter, applause, …); `incredibly-fast-whisper` returns
5365
+ * word timings when you ask for them. `whisper` returns NO word timings at
5366
+ * all — named explicitly or reached by OMITTING `provider`, which still falls
5367
+ * back to it — so asking it for them (`wordTimestamps: true`) is rejected with
5368
+ * a `400 validation_error` at ingress, before any credit is spent. A kinetic
5369
+ * caption render therefore has to name one of the other two.
5370
+ *
5371
+ * Poll `jobs.get(jobId)`; the finished job's `output_data` is a
5372
+ * {@link TranscribeJobOutput}: `text` (the whole transcript), `words`
5373
+ * (caption-shaped, in MILLISECONDS), `json` (the normalized
5374
+ * {@link Transcript}, also ms) — and a top-level `segments` array that is in
5375
+ * SECONDS, not ms.
5376
+ *
5377
+ * `words` is the caption source for a kinetic burn-in: hand it to
5378
+ * `media.addCaptions()` as `captions` with `autoTranscribe: false` and the
5379
+ * render uses those exact words (correct the `text` of an entry in between
5380
+ * and the fix is what burns in).
5381
+ */
5382
+ transcribe(input: {
5383
+ audioUrl: string;
5384
+ provider?: TranscribeProvider;
5385
+ language?: string;
5386
+ diarize?: boolean;
5387
+ tagAudioEvents?: boolean;
5388
+ wordTimestamps?: boolean;
5389
+ }): Promise<{
5390
+ jobId: string;
5391
+ }>;
5199
5392
  }
5200
5393
 
5201
5394
  /**
@@ -5219,6 +5412,11 @@ interface UserBalance {
5219
5412
  periodEnd: string | null;
5220
5413
  /** Credits earned for app usage (free tier only — earned by running flows). */
5221
5414
  appCreditsAllowance: number;
5415
+ /** Present when a deployment uses an external shared wallet. Raw credits;
5416
+ * null means unavailable. Do not substitute the personal `total` balance. */
5417
+ externalWallet?: {
5418
+ available: number | null;
5419
+ };
5222
5420
  }
5223
5421
  /**
5224
5422
  * Result of `POST /v1/credits/model-costs` — a batch cost lookup for editor
@@ -5465,6 +5663,8 @@ interface PickerOption {
5465
5663
  */
5466
5664
  term?: string;
5467
5665
  icon?: string;
5666
+ /** Authored Character Motion prerequisites and sequence state. Missing means unknown. */
5667
+ motion?: CharacterMotionMetadata;
5468
5668
  }
5469
5669
  interface PickerDimension {
5470
5670
  field: string;
@@ -6236,8 +6436,12 @@ interface StudioGenerateRequest {
6236
6436
  shotId: string;
6237
6437
  /** Candidates to fan out (stills); the builder clamps it to the catalog's range. */
6238
6438
  count?: number;
6239
- /** The directing input mode for a clip; absent ⇒ derived from the inputs. */
6240
- mode?: "start" | "references";
6439
+ /**
6440
+ * The directing input mode for a clip; absent ⇒ derived from the scene's saved
6441
+ * inputs (a pinned end frame included). `start` sends ONLY the start frame;
6442
+ * `start-end` sends the start and the end frame.
6443
+ */
6444
+ mode?: "start" | "start-end" | "references";
6241
6445
  /** Price the run and return; nothing is submitted and nothing is written. */
6242
6446
  dryRun?: boolean;
6243
6447
  clientRequestId?: StudioClientRequestId;
@@ -6640,7 +6844,7 @@ interface StudioShotGenerationInput {
6640
6844
  shotId: string;
6641
6845
  clientRequestId?: string;
6642
6846
  count?: number;
6643
- mode?: "start" | "references";
6847
+ mode?: "start" | "start-end" | "references";
6644
6848
  dryRun?: boolean;
6645
6849
  /** Linked clips only: require the exact inputs returned by a reviewed quote. */
6646
6850
  expectedInputHash?: string;
@@ -7599,6 +7803,184 @@ declare class WorkspacesResource {
7599
7803
  usageCsv(id: string, opts?: Omit<UsageQuery, "cursor" | "limit" | "workspaceId">): Promise<string>;
7600
7804
  }
7601
7805
 
7806
+ /**
7807
+ * A silence-detect job's `output_data.json` — the value to pass as
7808
+ * {@link EditPlanInput.silence}. It is NOT what {@link EditResource.silenceDetect}
7809
+ * returns (that is `{ jobId }`); fetch the finished job and read its
7810
+ * `output_data.json`. The planner reads the `ranges` array — an input without
7811
+ * one is silently ignored, so pass this whole object.
7812
+ */
7813
+ interface SilenceRanges {
7814
+ /** Wire version of the payload. */
7815
+ version?: number;
7816
+ /** Silence spans on the source clock, in ms. */
7817
+ ranges: ReadonlyArray<{
7818
+ startMs: number;
7819
+ endMs: number;
7820
+ }>;
7821
+ /** Total source duration, in ms. */
7822
+ durationMs?: number;
7823
+ }
7824
+ /** Every editorial route answers with the queued job to poll. */
7825
+ interface EditJobResult {
7826
+ /** The queued job id — follow it via `client.jobs.getStatus(jobId)`. */
7827
+ jobId: string;
7828
+ }
7829
+ interface SilenceDetectInput {
7830
+ /**
7831
+ * An audio OR video source. A single ffmpeg `silencedetect` pass runs over the
7832
+ * source's audio proxy either way — no provider key required.
7833
+ */
7834
+ audioUrl: string;
7835
+ /** dBFS threshold, always ≤ 0. Default -35 (a good podcast default). */
7836
+ thresholdDb?: number;
7837
+ /** Minimum silence length to report, in ms. Default 700. */
7838
+ minSilenceMs?: number;
7839
+ /** Padding kept around speech, in ms — shrinks each reported range inward. Default 120. */
7840
+ padMs?: number;
7841
+ /**
7842
+ * Optionally associate this run with a workflow execution (display only — it
7843
+ * ties the standalone job back to a workflow for the execution history).
7844
+ */
7845
+ workflowId?: string;
7846
+ }
7847
+ interface ApplyEdlInput {
7848
+ /** The edit decision list to render. Media resolves from each `edl.sources[i].url`. */
7849
+ edl: Edl;
7850
+ /**
7851
+ * Optional media-URL overrides for `edl.sources[i].url`, POSITIONAL in this
7852
+ * array's order. Each URL is SSRF-guarded server-side like any media the
7853
+ * platform fetches.
7854
+ */
7855
+ sources?: string[];
7856
+ /**
7857
+ * Optional transcript to remap through the cut. The rendered job returns the
7858
+ * remapped transcript on its `json` output. A word-level multi-hour transcript
7859
+ * is several MB — if you only need the re-timed transcript (not a render), use
7860
+ * {@link EditResource.remapTranscript} locally instead of sending it here.
7861
+ */
7862
+ transcript?: Transcript;
7863
+ /** Render a full video (default) or an audio-only cut. */
7864
+ output?: "video" | "audio";
7865
+ /** Fast proxy draft or the final render. Default "final". */
7866
+ quality?: "proxy" | "final";
7867
+ /**
7868
+ * Default crossfade (ms) on boundaries with no explicit transition; 0 = hard
7869
+ * cuts. Per-boundary clamped to the ffmpeg-xfade limit server-side. Default 0.
7870
+ */
7871
+ crossfadeMs?: number;
7872
+ /** Optionally associate this run with a workflow execution (display only). */
7873
+ workflowId?: string;
7874
+ }
7875
+ /**
7876
+ * One media source for an edit-plan run. Mirrors the shape the workflow engine
7877
+ * sends: a stable `id` (adopted verbatim as the plan's `EdlSource` id), the
7878
+ * media `url`, and the `kind`, plus optional per-source annotations the planner
7879
+ * honors.
7880
+ */
7881
+ interface EditPlanSource {
7882
+ /** Stable id for this source — becomes the `EdlSource` id in the returned plan. */
7883
+ id: string;
7884
+ /** The source's media URL (SSRF-guarded server-side). */
7885
+ url: string;
7886
+ /** This source's medium. */
7887
+ kind: "video" | "audio";
7888
+ /** Role annotation. `"master-audio"` marks the clock the plan is reserved on. */
7889
+ role?: "master-audio" | "camera" | "wide" | "screen";
7890
+ /** Speaker labels present in this source. */
7891
+ speakers?: string[];
7892
+ /** This source's origin on the master clock (masterMs = sourceMs + offsetMs). */
7893
+ offsetMs?: number;
7894
+ }
7895
+ interface EditPlanInput {
7896
+ /**
7897
+ * Planning mode. The finished job's `output_data` carries the plan — read it
7898
+ * with {@link unwrapEditPlanOutput}, which also strips the relay's
7899
+ * `viaNodaroCloud` marker:
7900
+ * - `"tighten"` → an `Edl`.
7901
+ * - `"clips"` → an {@link EdlClipSet} (`{ version, clips: Edl[] }`);
7902
+ * `unwrapEditPlanOutput` returns the bare `Edl[]`.
7903
+ * - `"chapters"` → a {@link ChapterSet} (`{ version, chapters: [...] }`).
7904
+ */
7905
+ mode: EditPlanMode;
7906
+ /** Reasoning tier — affects plan quality AND the credit bucket. */
7907
+ planTier: EditPlanTier;
7908
+ /** The timed transcript driving the plan. */
7909
+ transcript: Transcript;
7910
+ /**
7911
+ * Optional detected silence ranges. Pass the silence-detect JOB'S RESULT —
7912
+ * `getStatus(jobId).data.output_data.json` (a {@link SilenceRanges} object),
7913
+ * NOT the `{ jobId }` that {@link EditResource.silenceDetect} returns. The
7914
+ * planner reads the `ranges` array; an input without one is silently ignored.
7915
+ */
7916
+ silence?: SilenceRanges;
7917
+ /** The recording's media sources (1–6). */
7918
+ sources: EditPlanSource[];
7919
+ /** Free-text editing steer. */
7920
+ instructions?: string;
7921
+ /** Style-guide text applied to the plan. */
7922
+ styleGuide?: string;
7923
+ /** `"clips"` mode only: how many clips to cut. */
7924
+ count?: number;
7925
+ /** `"clips"` mode only: target duration per clip, in seconds. */
7926
+ targetDurationSec?: number;
7927
+ /** Target aspect for cut clips. */
7928
+ targetAspect?: "16:9" | "9:16" | "1:1" | "4:5";
7929
+ /** Target platform hint (e.g. a social platform name). */
7930
+ platform?: string;
7931
+ /** Optionally associate this run with a workflow execution (display only). */
7932
+ workflowId?: string;
7933
+ }
7934
+ /**
7935
+ * Phase-1 editorial primitives for podcast / long-form video editing.
7936
+ *
7937
+ * - {@link silenceDetect} and {@link applyEdl} are core nodes available on every
7938
+ * edition.
7939
+ * - {@link editPlan} is a Cloud-edition transcript-driven planner.
7940
+ * - {@link remapTranscript} is a PURE local transform (no request) — the same
7941
+ * remap `applyEdl` performs on its `transcript`, exposed for callers that hold
7942
+ * an EDL and a transcript and only want the re-timed transcript.
7943
+ *
7944
+ * Every request method returns {@link EditJobResult}; poll the `jobId` with
7945
+ * `client.jobs.getStatus(jobId)`.
7946
+ */
7947
+ declare class EditResource {
7948
+ private client;
7949
+ constructor(client: NodaroClient);
7950
+ /**
7951
+ * Detect silence ranges in an audio/video source (`POST /v1/silence-detect`).
7952
+ * Keyless — one ffmpeg pass over the source's audio proxy.
7953
+ */
7954
+ silenceDetect(input: SilenceDetectInput): Promise<EditJobResult>;
7955
+ /**
7956
+ * Render an edit decision list into a video or audio cut (`POST /v1/apply-edl`).
7957
+ * The EDL is validated at ingress — an unresolvable source or a picture-less
7958
+ * segment on a video edit throws a typed `NodaroError` (400, `code:
7959
+ * "invalid_edl"`) before any credits are reserved.
7960
+ */
7961
+ applyEdl(input: ApplyEdlInput): Promise<EditJobResult>;
7962
+ /**
7963
+ * Plan a transcript-driven cut (`POST /v1/edit-plan`). Reads a timed
7964
+ * transcript (plus optional silence ranges) and the media sources, and plans
7965
+ * the edit. The finished job's `output_data` holds the plan: an `Edl`
7966
+ * (`"tighten"`), an {@link EdlClipSet} (`"clips"`), or a {@link ChapterSet}
7967
+ * (`"chapters"`) — normalize it with {@link unwrapEditPlanOutput}.
7968
+ *
7969
+ * On a self-hosted install the request relays to nodaro.ai and needs the
7970
+ * install connected (a 503 `code: "nodaro_connection_required"` otherwise);
7971
+ * on nodaro.ai it runs directly.
7972
+ */
7973
+ editPlan(input: EditPlanInput): Promise<EditJobResult>;
7974
+ /**
7975
+ * Remap a transcript through an EDL — a PURE client-side transform (NO
7976
+ * request). Returns a new transcript whose word (and segment) timings are on
7977
+ * the EDL's rendered output clock, dropping words that fall in cut regions and
7978
+ * clipping straddlers. Runs `@nodaro/shared`'s canonical
7979
+ * `remapTranscriptThroughEdl`, the same remap `applyEdl` performs server-side.
7980
+ */
7981
+ remapTranscript(edl: Edl, transcript: Transcript): Transcript;
7982
+ }
7983
+
7602
7984
  interface ClientOptions {
7603
7985
  /** Backend base URL, e.g. "https://nodaro.example.com" or empty string for same-origin. */
7604
7986
  baseUrl: string;
@@ -7712,6 +8094,7 @@ declare class NodaroClient {
7712
8094
  readonly tutorials: TutorialsResource;
7713
8095
  readonly organizations: OrganizationsResource;
7714
8096
  readonly workspaces: WorkspacesResource;
8097
+ readonly edit: EditResource;
7715
8098
  /** The workspace this client acts in; undefined = the personal space. */
7716
8099
  readonly workspaceId: string | undefined;
7717
8100
  constructor(opts: ClientOptions);
@@ -7993,4 +8376,4 @@ interface ApiErrorBody {
7993
8376
  }
7994
8377
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
7995
8378
 
7996
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, CatalogsResource, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, CommunityResource, type ContinueVideoProResult, type CopilotMemorySavedFrameData, type CopilotMessage, type CopilotMessagePart, type CopilotMetadataFrameData, type CopilotModelTier, CopilotResource, type CopilotRunMode, type CopilotRunProposalFrameData, type CopilotRunProposalNode, type CopilotStreamFrame, type CopilotStreamOptions, type CopilotSurface, type CopilotThread, type CopilotThreadWorkflow, type CopilotToolCallFrameData, type CopilotWiredAsset, type CopilotWorkflowCreatedFrameData, type CopilotWorkflowUpdateFrameData, type CreateCopilotThreadInput, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateOrgInput, type CreateProjectInput, type CreateRecastInput, type CreateShotInput, type CreateWorkflowInput, type CreateWorkspaceInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, type CreditStatus, CreditsResource, type DeleteAppRunResult, type DeleteJobResult, type DeveloperApp, type DeveloperAppKind, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DownloadVideoProgress, type DubbingInput, type DuplicateCharacterInput, type EditScene3DParams, type EnhanceInput, type EstimateRecastInput, type EstimateRecastRescoreInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateScene3DParams, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, type GetProductionOptions, InsufficientCreditsError, type InviteInput, type Job, JobAbortedError, JobBlockedError, type JobErrorHint, JobFailedError, JobHeldError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCharactersResult, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListInvitationsOptions, type ListJobsPage, type ListJobsParams, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListStudioProductionsOptions, type ListWorkflowsParams, LlmResource, type LlmStructuredInput, type LlmStructuredJobInput, type LlmStructuredJobOutput, type LlmStructuredResult, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type MediaProcessInput, type MediaProcessResult, MediaResource, type ModelCostsResult, type ModelSummary, type ModelsListResult, ModelsResource, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, OrganizationsResource, type OutputType, type OverlayPlacement, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, type PolicyBlockHint, PresetsResource, type Project, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type RecastAudioLayerName, type RecastAudioManifestV1, type RecastAudioMix, type RecastAudioMixControl, type RecastAudioSectionReplacement, type RecastEstimate, type RecastRescoreOperation, type RecastRescoreQuote, type RecastRescoreReplacement, type RecastRescoreRequestV2, type RecastRescoreResponse, RecastResource, type RecastRunSnapshot, type RecastScriptImportResult, type RecastScriptValidation, type RecastScriptValidationError, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RenderScene3DParams, type ResolveRecastGateInput, type RetainedScene3DEditParams, type RetainedScene3DEditResult, type RotateSecretResult, type RunAndWaitOptions, type RunAppOptions, type RunManyResult, type RunNodeAdjustment, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, SCENE3D_DELIVERY_ASSET_USAGE, type SafetyBlockHint, type Scene3DAuthoringEngine, type Scene3DCapabilities, type Scene3DDelivery, type Scene3DDeliveryAsset, type Scene3DDeliveryAssetKind, type Scene3DJobOutput, Scene3DResource, type Shot, type ShotEntityRef, type ShotMode, ShotsResource, StaticTokenAuth, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type StudioClientRequestId, type StudioCloneRequest, type StudioCreateProductionRequest, type StudioDescribeRequest, type StudioDocumentJson, type StudioEditInput, type StudioExportPlanOptions, type StudioExportPlanResponse, type StudioExportStep, type StudioFrameRequest, type StudioGenerateEstimate, type StudioGenerateOptions, type StudioGenerateRequest, type StudioGenerateResponse, type StudioGenerateResult, type StudioGenerationReply, type StudioImportSummary, type StudioJobStartedResponse, type StudioKeyframeAcceptanceInput, type StudioKeyframeGenerationInput, type StudioKeyframeRecord, type StudioListProductionsResponse, type StudioMediaResponse, type StudioMusicRequest, type StudioOpClass, StudioOpError, type StudioOpsDryRunReceipt, type StudioOpsDryRunResponse, type StudioOpsImpact, type StudioOpsReceipt, type StudioOpsRequest, type StudioOpsResponse, type StudioPlanIssue, StudioPreviewAppliedError, StudioPreviewUnavailable, type StudioProduction, type StudioProductionCapabilities, type StudioProductionDetail, type StudioProductionRecord, type StudioProductionReply, type StudioProductionResponse, StudioProductionsResource, type StudioReconcileResponse, StudioResource, type StudioRevoiceRequest, type StudioShotGenerationInput, type StudioSkillResponse, type StudioValidatePlanResponse, type StudioVideoLane, type StudioVoiceRequest, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TextToVideoParams, type TutorialCategory, type TutorialFlowItem, type TutorialVideoItem, TutorialsResource, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateShotInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VcpAnalysis, type VcpAnalysisSpeaker, type VcpAnalyzeInput, type VcpExportInput, type VcpExportTrack, type VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowConflictCode, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, WorkspacesResource, buildPersonSeedPrompt, createClient, isStudioGenerateEstimate, supabaseAuth, throwFromResponse };
8379
+ export { type AccessTokenResponse, type AddCaptionsInput, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApplyEdlInput, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, AudioResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, type BrowseTemplatesParams, type BrowseTemplatesResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type CaptionEntry, type CaptionLookInput, type CaptionSegmentInput, CatalogsResource, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, type CloneTemplateParams, type CloneTemplateResult, CommunityResource, type ContinueVideoProResult, type CopilotMemorySavedFrameData, type CopilotMessage, type CopilotMessagePart, type CopilotMetadataFrameData, type CopilotModelTier, CopilotResource, type CopilotRunMode, type CopilotRunProposalFrameData, type CopilotRunProposalNode, type CopilotStreamFrame, type CopilotStreamOptions, type CopilotSurface, type CopilotThread, type CopilotThreadWorkflow, type CopilotToolCallFrameData, type CopilotWiredAsset, type CopilotWorkflowCreatedFrameData, type CopilotWorkflowUpdateFrameData, type CreateCopilotThreadInput, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateOrgInput, type CreateProjectInput, type CreateRecastInput, type CreateShotInput, type CreateWorkflowInput, type CreateWorkspaceInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, type CreditStatus, CreditsResource, type DeleteAppRunResult, type DeleteJobResult, type DeveloperApp, type DeveloperAppKind, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DownloadVideoProgress, type DubbingInput, type DuplicateCharacterInput, type EditJobResult, type EditPlanInput, type EditPlanSource, EditResource, type EditScene3DParams, type EnhanceInput, type EstimateRecastInput, type EstimateRecastRescoreInput, type ExchangeCodeInput, type ExecutionStatus, type ExecutionTriggerType, ExecutionsResource, type FactoryPresetsResult, ForbiddenError, type GenerateAssetInput, type GenerateCharacterInput, type GenerateCharacterResult, type GenerateCreatureAssetInput, type GenerateCreatureAssetResult, type GenerateCreatureInput, type GenerateCreatureMotionInput, type GenerateCreatureMotionResult, type GenerateCreatureResult, type GenerateImageParams, type GenerateInput, type GenerateLocationAssetInput, type GenerateLocationInput, type GenerateLocationResult, type GenerateMotionInput, type GenerateObjectAssetInput, type GenerateObjectAssetResult, type GenerateObjectInput, type GenerateObjectMotionInput, type GenerateObjectMotionResult, type GenerateObjectResult, type GenerateScene3DParams, type GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, type GetProductionOptions, InsufficientCreditsError, type InviteInput, type Job, JobAbortedError, JobBlockedError, type JobErrorHint, JobFailedError, JobHeldError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCharactersResult, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListInvitationsOptions, type ListJobsPage, type ListJobsParams, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListModelsOptions, type ListObjectsParams, type ListStudioProductionsOptions, type ListWorkflowsParams, LlmResource, type LlmStructuredInput, type LlmStructuredJobInput, type LlmStructuredJobOutput, type LlmStructuredResult, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type MediaProcessInput, type MediaProcessResult, MediaResource, type ModelCostsResult, type ModelSummary, type ModelsListResult, ModelsResource, NodaroClient, NodaroError, type NodeCategory, type NodeDescriptor, type NodeExecutionState, type NodeInputField, type NodeInputSchema, type NodeJobOutput, type NodePreset, type NodePresetGroup, NodesResource, NotFoundError, type OAuthAppInfo, OAuthResource, type Object$1 as Object, type ObjectCategory, type ObjectDetail, type ObjectReferencePhoto, type ObjectReferencePhotoKind, ObjectsResource, OrganizationsResource, type OutputType, type OverlayPlacement, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, type PolicyBlockHint, PresetsResource, type Project, type ProjectedCatalog, type ProjectedCatalogDimension, type ProjectedCatalogOption, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type RecastAudioLayerName, type RecastAudioManifestV1, type RecastAudioMix, type RecastAudioMixControl, type RecastAudioSectionReplacement, type RecastEstimate, type RecastRescoreOperation, type RecastRescoreQuote, type RecastRescoreReplacement, type RecastRescoreRequestV2, type RecastRescoreResponse, RecastResource, type RecastRunSnapshot, type RecastScriptImportResult, type RecastScriptValidation, type RecastScriptValidationError, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RenderScene3DParams, type ResolveRecastGateInput, type RetainedScene3DEditParams, type RetainedScene3DEditResult, type RotateSecretResult, type RunAndWaitOptions, type RunAppOptions, type RunManyResult, type RunNodeAdjustment, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, SCENE3D_DELIVERY_ASSET_USAGE, type SafetyBlockHint, type Scene3DAuthoringEngine, type Scene3DCapabilities, type Scene3DDelivery, type Scene3DDeliveryAsset, type Scene3DDeliveryAssetKind, type Scene3DJobOutput, Scene3DResource, type Shot, type ShotEntityRef, type ShotMode, ShotsResource, type SilenceDetectInput, type SilenceRanges, StaticTokenAuth, type StopVideoProResult, StorageExceededError, type StructuredReferenceParams, type StudioClientRequestId, type StudioCloneRequest, type StudioCreateProductionRequest, type StudioDescribeRequest, type StudioDocumentJson, type StudioEditInput, type StudioExportPlanOptions, type StudioExportPlanResponse, type StudioExportStep, type StudioFrameRequest, type StudioGenerateEstimate, type StudioGenerateOptions, type StudioGenerateRequest, type StudioGenerateResponse, type StudioGenerateResult, type StudioGenerationReply, type StudioImportSummary, type StudioJobStartedResponse, type StudioKeyframeAcceptanceInput, type StudioKeyframeGenerationInput, type StudioKeyframeRecord, type StudioListProductionsResponse, type StudioMediaResponse, type StudioMusicRequest, type StudioOpClass, StudioOpError, type StudioOpsDryRunReceipt, type StudioOpsDryRunResponse, type StudioOpsImpact, type StudioOpsReceipt, type StudioOpsRequest, type StudioOpsResponse, type StudioPlanIssue, StudioPreviewAppliedError, StudioPreviewUnavailable, type StudioProduction, type StudioProductionCapabilities, type StudioProductionDetail, type StudioProductionRecord, type StudioProductionReply, type StudioProductionResponse, StudioProductionsResource, type StudioReconcileResponse, StudioResource, type StudioRevoiceRequest, type StudioShotGenerationInput, type StudioSkillResponse, type StudioValidatePlanResponse, type StudioVideoLane, type StudioVoiceRequest, type Template, type TemplateBrowseCard, type TemplateSort, TemplatesResource, type TextToVideoParams, type TranscribeJobOutput, type TranscribeWord, type TutorialCategory, type TutorialFlowItem, type TutorialVideoItem, TutorialsResource, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, type UpdateShotInput, type UpdateWorkflowInput, type UploadResult, UploadsResource, type UpsertCharacterInput, type UpsertCharacterResult, type UpsertCreatureInput, type UpsertCreatureResult, type UpsertObjectInput, type UpsertObjectResult, type UserBalance, type UserIdentity, type VcpAnalysis, type VcpAnalysisSpeaker, type VcpAnalyzeInput, type VcpExportInput, type VcpExportTrack, type VideoMetadata, VideoProResource, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowConflictCode, WorkflowConflictError, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, WorkspacesResource, buildPersonSeedPrompt, createClient, isStudioGenerateEstimate, supabaseAuth, throwFromResponse };