@nodaro/sdk 1.4.0 → 1.5.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.cts CHANGED
@@ -3387,10 +3387,16 @@ declare class VoicesResource {
3387
3387
  voiceId: string;
3388
3388
  audioUrl?: string;
3389
3389
  videoUrl?: string;
3390
+ /** Speech-to-speech model id. Defaults to the server-configured default when omitted. */
3391
+ model?: string;
3390
3392
  stability?: number;
3391
3393
  similarityBoost?: number;
3392
3394
  /** Style exaggeration (0–1). Default 0; >0 amplifies delivery at the cost of latency/stability. */
3393
3395
  style?: number;
3396
+ /** ElevenLabs speaker boost — sharpens fidelity to the target speaker (small latency cost). */
3397
+ useSpeakerBoost?: boolean;
3398
+ /** Deterministic speech-to-speech seed (integer 0–4294967295) for reproducible output. Omit for random. */
3399
+ seed?: number;
3394
3400
  removeBackgroundNoise?: boolean;
3395
3401
  }): Promise<{
3396
3402
  jobId: string;
@@ -3465,6 +3471,49 @@ declare class VoicesResource {
3465
3471
  exportMix(input: VcpExportInput): Promise<{
3466
3472
  jobId: string;
3467
3473
  }>;
3474
+ /**
3475
+ * Design a brand-new synthetic voice from a text description
3476
+ * (`POST /v1/voice-design`) — ElevenLabs text-to-voice. `text` (100–1000 chars)
3477
+ * is a preview line spoken in the designed voice; `voiceDescription` describes
3478
+ * the voice to create. Costs credits and runs async — poll `jobs.get(jobId)`
3479
+ * for the preview + the reusable voice id.
3480
+ */
3481
+ design(input: VoiceDesignInput): Promise<{
3482
+ jobId: string;
3483
+ }>;
3484
+ /**
3485
+ * Generate speech in a voice described in natural language, without cloning
3486
+ * (`POST /v1/voice-remix`). `text` (1–5000 chars) is spoken in a voice matching
3487
+ * `voiceDescription`. Costs credits and runs async — poll `jobs.get(jobId)`.
3488
+ */
3489
+ remix(input: VoiceRemixInput): Promise<{
3490
+ jobId: string;
3491
+ }>;
3492
+ /**
3493
+ * Dub an audio clip into another language while preserving each speaker's voice
3494
+ * (`POST /v1/dubbing`). `targetLanguage` is an ISO code (e.g. `"es"`, `"fr"`);
3495
+ * `sourceLanguage` is auto-detected when omitted. Costs credits and runs async
3496
+ * — poll `jobs.get(jobId)`.
3497
+ */
3498
+ dub(input: DubbingInput): Promise<{
3499
+ jobId: string;
3500
+ }>;
3501
+ /**
3502
+ * Clone a voice from an audio FILE you hold in memory
3503
+ * (`POST /v1/voice-clones`, multipart) — the counterpart to
3504
+ * {@link VoicesResource.createClone}, which clones from an already-uploaded
3505
+ * URL. Pass the raw audio `file` (a `Blob`/`File` in the browser, or a
3506
+ * `Uint8Array`/`Buffer` in Node) plus a `name`. Costs credits. Returns the new
3507
+ * {@link VoiceClone} (`elevenlabsVoiceId` is the id to recast/synthesize with).
3508
+ */
3509
+ createCloneFromFile(input: {
3510
+ name: string;
3511
+ file: Blob | Uint8Array | ArrayBuffer;
3512
+ /** File name for the upload part (default `sample`). */
3513
+ filename?: string;
3514
+ /** MIME type when `file` is a raw buffer (default `audio/mpeg`). */
3515
+ contentType?: string;
3516
+ }): Promise<VoiceClone>;
3468
3517
  }
3469
3518
  /**
3470
3519
  * One entry in {@link VoiceChangerProInput.orderedVoices}. Either a bare voice id
@@ -3646,6 +3695,226 @@ interface VcpExportInput {
3646
3695
  */
3647
3696
  voiceFx?: VoiceChangerProInput["voiceFx"];
3648
3697
  }
3698
+ /** Input for {@link VoicesResource.design}. */
3699
+ interface VoiceDesignInput {
3700
+ /** A preview line (100–1000 chars) spoken in the designed voice. */
3701
+ text: string;
3702
+ /** Natural-language description of the voice to create. */
3703
+ voiceDescription: string;
3704
+ /** Voice-design model id. Defaults to the server-configured default. */
3705
+ model?: string;
3706
+ /** Output loudness (-1..1). */
3707
+ loudness?: number;
3708
+ /** How strongly the description steers the design (0–100). */
3709
+ guidanceScale?: number;
3710
+ /** Deterministic seed for a reproducible design. */
3711
+ seed?: number;
3712
+ /** Design quality knob (provider-specific). */
3713
+ quality?: number;
3714
+ /** Enhance the generated voice. */
3715
+ shouldEnhance?: boolean;
3716
+ /** Optional extra prompt context (≤8000 chars). */
3717
+ userPrompt?: string;
3718
+ }
3719
+ /** Input for {@link VoicesResource.remix}. */
3720
+ interface VoiceRemixInput {
3721
+ /** The text (1–5000 chars) to speak in the described voice. */
3722
+ text: string;
3723
+ /** Natural-language description of the voice to speak in. */
3724
+ voiceDescription: string;
3725
+ /** Optional extra prompt context (≤8000 chars). */
3726
+ userPrompt?: string;
3727
+ }
3728
+ /** Input for {@link VoicesResource.dub}. */
3729
+ interface DubbingInput {
3730
+ /** URL of the audio to dub. */
3731
+ audioUrl: string;
3732
+ /** Target language ISO code (2–10 chars), e.g. `"es"`, `"pt-BR"`. */
3733
+ targetLanguage: string;
3734
+ /** Source language ISO code; auto-detected when omitted. */
3735
+ sourceLanguage?: string;
3736
+ /** Expected number of speakers (1–20) — improves separation when known. */
3737
+ numSpeakers?: number;
3738
+ /** Keep the original voices instead of cloning them into the target language. */
3739
+ disableVoiceCloning?: boolean;
3740
+ /** Drop the background/music bed from the dubbed output. */
3741
+ dropBackgroundAudio?: boolean;
3742
+ }
3743
+
3744
+ /**
3745
+ * Media ingestion + trimming — the source-preparation steps a Voice Changer Pro
3746
+ * flow (or any pipeline) needs before it has a clip to work on: pull a social
3747
+ * video into storage, copy a remote URL into storage, trim a video/audio to a
3748
+ * range, and probe a video's metadata. Each generation-style op returns a job id
3749
+ * to poll (`jobs.get(jobId)`); `videoMetadata` is a direct read.
3750
+ */
3751
+ declare class MediaResource {
3752
+ private client;
3753
+ constructor(client: NodaroClient);
3754
+ /**
3755
+ * Download a social video (YouTube / TikTok / Instagram / X / Facebook) into
3756
+ * your storage (`POST /v1/download-video`). `maxHeight` caps the resolution
3757
+ * (default "best"); `sectionStartSec` + `sectionEndSec` (both-or-neither) fetch
3758
+ * ONLY that time range instead of the whole video. Returns a `downloadId`;
3759
+ * progress streams from `GET /v1/download-video/progress/:downloadId`
3760
+ * (server-sent events) and the finished file lands in your library.
3761
+ */
3762
+ downloadVideo(input: {
3763
+ url: string;
3764
+ maxHeight?: number;
3765
+ sectionStartSec?: number;
3766
+ sectionEndSec?: number;
3767
+ }): Promise<{
3768
+ downloadId: string;
3769
+ }>;
3770
+ /**
3771
+ * Copy an external media URL into your Nodaro storage (`POST /v1/save-to-storage`)
3772
+ * — a server-side fetch, so nothing round-trips through the client. Poll
3773
+ * `jobs.get(jobId)`.
3774
+ */
3775
+ saveToStorage(input: {
3776
+ mediaUrl: string;
3777
+ filename?: string;
3778
+ mediaType?: "image" | "video" | "audio";
3779
+ }): Promise<{
3780
+ jobId: string;
3781
+ }>;
3782
+ /**
3783
+ * Trim a video to a range (`POST /v1/trim-video`). Give the range in whichever
3784
+ * unit fits: `startTime`/`endTime` seconds, `trim*Frames`, `trim*Seconds`, or
3785
+ * `keepFirst`/`keepLastSeconds`. Poll `jobs.get(jobId)`.
3786
+ */
3787
+ trimVideo(input: {
3788
+ videoUrl: string;
3789
+ startTime?: number;
3790
+ endTime?: number;
3791
+ trimStartFrames?: number;
3792
+ trimEndFrames?: number;
3793
+ trimStartSeconds?: number;
3794
+ trimEndSeconds?: number;
3795
+ keepFirstSeconds?: number;
3796
+ keepLastSeconds?: number;
3797
+ }): Promise<{
3798
+ jobId: string;
3799
+ }>;
3800
+ /**
3801
+ * Trim (and extract) audio from a video or audio source
3802
+ * (`POST /v1/trim-audio`) to `[startTime, endTime]` seconds, in `audioFormat`
3803
+ * (`mp3` default / `wav` / `aac`). Poll `jobs.get(jobId)`.
3804
+ */
3805
+ trimAudio(input: {
3806
+ videoUrl?: string;
3807
+ audioUrl?: string;
3808
+ audioFormat?: "mp3" | "wav" | "aac";
3809
+ startTime?: number;
3810
+ endTime?: number;
3811
+ }): Promise<{
3812
+ jobId: string;
3813
+ }>;
3814
+ /**
3815
+ * Probe a social video's metadata (`POST /v1/video-metadata`) — duration,
3816
+ * dimensions, title, live status — WITHOUT downloading it. A direct read, not a
3817
+ * job. Use it to decide whether to trim before importing.
3818
+ */
3819
+ videoMetadata(input: {
3820
+ url: string;
3821
+ }): Promise<VideoMetadata>;
3822
+ }
3823
+ /** Result of {@link MediaResource.videoMetadata}. Fields are best-effort — a probe may omit some. */
3824
+ interface VideoMetadata {
3825
+ durationSec?: number | null;
3826
+ width?: number | null;
3827
+ height?: number | null;
3828
+ title?: string | null;
3829
+ isLive?: boolean;
3830
+ [key: string]: unknown;
3831
+ }
3832
+
3833
+ /**
3834
+ * Audio primitives — the building blocks Voice Changer Pro composes internally
3835
+ * (separation, isolation, effect, mix, level), exposed standalone so a consumer
3836
+ * can run any single step or assemble its own pipeline. Each returns a job id to
3837
+ * poll (`jobs.get(jobId)`).
3838
+ */
3839
+ declare class AudioResource {
3840
+ private client;
3841
+ constructor(client: NodaroClient);
3842
+ /**
3843
+ * Separate an audio track into stems (`POST /v1/audio-separation`, Demucs).
3844
+ * `mode` `"vocal_instrumental"` (default) splits voice from music/SFX;
3845
+ * `"stems"` returns the full drums/bass/other/… breakdown. `quality`
3846
+ * `auto` (default) / `fast` / `best`.
3847
+ */
3848
+ separate(input: {
3849
+ audioUrl: string;
3850
+ mode?: "vocal_instrumental" | "stems";
3851
+ quality?: "auto" | "fast" | "best";
3852
+ }): Promise<{
3853
+ jobId: string;
3854
+ }>;
3855
+ /** Isolate the primary voice and strip background noise (`POST /v1/audio-isolation`, ElevenLabs). */
3856
+ isolate(input: {
3857
+ audioUrl: string;
3858
+ }): Promise<{
3859
+ jobId: string;
3860
+ }>;
3861
+ /**
3862
+ * Apply a reverb / echo / telephone / megaphone effect to an audio track
3863
+ * (`POST /v1/audio-fx`) — the same presets VCP's `voiceFx` uses, standalone.
3864
+ * `mix` (0–100) is the reverb wet/dry; `delayMs` + `decay` drive `echo`/`custom`;
3865
+ * `eqLow`/`eqHigh` (dB) shape telephone/megaphone.
3866
+ */
3867
+ applyFx(input: {
3868
+ audioUrl: string;
3869
+ preset?: AudioFxPreset;
3870
+ mix?: number;
3871
+ delayMs?: number;
3872
+ decay?: number;
3873
+ eqLow?: number;
3874
+ eqHigh?: number;
3875
+ }): Promise<{
3876
+ jobId: string;
3877
+ }>;
3878
+ /**
3879
+ * Layer multiple audio tracks into one (`POST /v1/mix-audio`). `audioUrls`
3880
+ * (2–20) are summed; optional `trackVolumes` (0–200% each, positionally) set
3881
+ * per-track level.
3882
+ */
3883
+ mix(input: {
3884
+ audioUrls: string[];
3885
+ trackVolumes?: number[];
3886
+ }): Promise<{
3887
+ jobId: string;
3888
+ }>;
3889
+ /**
3890
+ * Adjust an audio (or a video's audio) level (`POST /v1/adjust-volume`):
3891
+ * `volume` % (default 100), `normalize` to loudnorm, and `fadeIn`/`fadeOut`
3892
+ * seconds. Provide `audioUrl` or `videoUrl`.
3893
+ */
3894
+ adjustVolume(input: {
3895
+ audioUrl?: string;
3896
+ videoUrl?: string;
3897
+ volume?: number;
3898
+ normalize?: boolean;
3899
+ fadeIn?: number;
3900
+ fadeOut?: number;
3901
+ }): Promise<{
3902
+ jobId: string;
3903
+ }>;
3904
+ /**
3905
+ * Concatenate audio segments end-to-end (`POST /v1/combine-audio`). Each
3906
+ * segment is a `url` with an optional `[startTime, endTime]` sub-range.
3907
+ */
3908
+ combine(input: {
3909
+ segments: Array<{
3910
+ url: string;
3911
+ startTime?: number;
3912
+ endTime?: number;
3913
+ }>;
3914
+ }): Promise<{
3915
+ jobId: string;
3916
+ }>;
3917
+ }
3649
3918
 
3650
3919
  /**
3651
3920
  * Authenticated user's credit balance — the shape of `GET /v1/user/credits`'s
@@ -4082,6 +4351,8 @@ declare class NodaroClient {
4082
4351
  readonly reduce: ReduceResource;
4083
4352
  readonly promptHelper: PromptHelperResource;
4084
4353
  readonly voices: VoicesResource;
4354
+ readonly media: MediaResource;
4355
+ readonly audio: AudioResource;
4085
4356
  readonly credits: CreditsResource;
4086
4357
  readonly uploads: UploadsResource;
4087
4358
  readonly library: LibraryResource;
@@ -4176,4 +4447,4 @@ interface ApiErrorBody {
4176
4447
  }
4177
4448
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4178
4449
 
4179
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, 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 GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, 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, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, 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 VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
4450
+ 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, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DubbingInput, type DuplicateCharacterInput, type EnhanceInput, 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 GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, 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, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, 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, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
package/dist/index.d.ts CHANGED
@@ -3387,10 +3387,16 @@ declare class VoicesResource {
3387
3387
  voiceId: string;
3388
3388
  audioUrl?: string;
3389
3389
  videoUrl?: string;
3390
+ /** Speech-to-speech model id. Defaults to the server-configured default when omitted. */
3391
+ model?: string;
3390
3392
  stability?: number;
3391
3393
  similarityBoost?: number;
3392
3394
  /** Style exaggeration (0–1). Default 0; >0 amplifies delivery at the cost of latency/stability. */
3393
3395
  style?: number;
3396
+ /** ElevenLabs speaker boost — sharpens fidelity to the target speaker (small latency cost). */
3397
+ useSpeakerBoost?: boolean;
3398
+ /** Deterministic speech-to-speech seed (integer 0–4294967295) for reproducible output. Omit for random. */
3399
+ seed?: number;
3394
3400
  removeBackgroundNoise?: boolean;
3395
3401
  }): Promise<{
3396
3402
  jobId: string;
@@ -3465,6 +3471,49 @@ declare class VoicesResource {
3465
3471
  exportMix(input: VcpExportInput): Promise<{
3466
3472
  jobId: string;
3467
3473
  }>;
3474
+ /**
3475
+ * Design a brand-new synthetic voice from a text description
3476
+ * (`POST /v1/voice-design`) — ElevenLabs text-to-voice. `text` (100–1000 chars)
3477
+ * is a preview line spoken in the designed voice; `voiceDescription` describes
3478
+ * the voice to create. Costs credits and runs async — poll `jobs.get(jobId)`
3479
+ * for the preview + the reusable voice id.
3480
+ */
3481
+ design(input: VoiceDesignInput): Promise<{
3482
+ jobId: string;
3483
+ }>;
3484
+ /**
3485
+ * Generate speech in a voice described in natural language, without cloning
3486
+ * (`POST /v1/voice-remix`). `text` (1–5000 chars) is spoken in a voice matching
3487
+ * `voiceDescription`. Costs credits and runs async — poll `jobs.get(jobId)`.
3488
+ */
3489
+ remix(input: VoiceRemixInput): Promise<{
3490
+ jobId: string;
3491
+ }>;
3492
+ /**
3493
+ * Dub an audio clip into another language while preserving each speaker's voice
3494
+ * (`POST /v1/dubbing`). `targetLanguage` is an ISO code (e.g. `"es"`, `"fr"`);
3495
+ * `sourceLanguage` is auto-detected when omitted. Costs credits and runs async
3496
+ * — poll `jobs.get(jobId)`.
3497
+ */
3498
+ dub(input: DubbingInput): Promise<{
3499
+ jobId: string;
3500
+ }>;
3501
+ /**
3502
+ * Clone a voice from an audio FILE you hold in memory
3503
+ * (`POST /v1/voice-clones`, multipart) — the counterpart to
3504
+ * {@link VoicesResource.createClone}, which clones from an already-uploaded
3505
+ * URL. Pass the raw audio `file` (a `Blob`/`File` in the browser, or a
3506
+ * `Uint8Array`/`Buffer` in Node) plus a `name`. Costs credits. Returns the new
3507
+ * {@link VoiceClone} (`elevenlabsVoiceId` is the id to recast/synthesize with).
3508
+ */
3509
+ createCloneFromFile(input: {
3510
+ name: string;
3511
+ file: Blob | Uint8Array | ArrayBuffer;
3512
+ /** File name for the upload part (default `sample`). */
3513
+ filename?: string;
3514
+ /** MIME type when `file` is a raw buffer (default `audio/mpeg`). */
3515
+ contentType?: string;
3516
+ }): Promise<VoiceClone>;
3468
3517
  }
3469
3518
  /**
3470
3519
  * One entry in {@link VoiceChangerProInput.orderedVoices}. Either a bare voice id
@@ -3646,6 +3695,226 @@ interface VcpExportInput {
3646
3695
  */
3647
3696
  voiceFx?: VoiceChangerProInput["voiceFx"];
3648
3697
  }
3698
+ /** Input for {@link VoicesResource.design}. */
3699
+ interface VoiceDesignInput {
3700
+ /** A preview line (100–1000 chars) spoken in the designed voice. */
3701
+ text: string;
3702
+ /** Natural-language description of the voice to create. */
3703
+ voiceDescription: string;
3704
+ /** Voice-design model id. Defaults to the server-configured default. */
3705
+ model?: string;
3706
+ /** Output loudness (-1..1). */
3707
+ loudness?: number;
3708
+ /** How strongly the description steers the design (0–100). */
3709
+ guidanceScale?: number;
3710
+ /** Deterministic seed for a reproducible design. */
3711
+ seed?: number;
3712
+ /** Design quality knob (provider-specific). */
3713
+ quality?: number;
3714
+ /** Enhance the generated voice. */
3715
+ shouldEnhance?: boolean;
3716
+ /** Optional extra prompt context (≤8000 chars). */
3717
+ userPrompt?: string;
3718
+ }
3719
+ /** Input for {@link VoicesResource.remix}. */
3720
+ interface VoiceRemixInput {
3721
+ /** The text (1–5000 chars) to speak in the described voice. */
3722
+ text: string;
3723
+ /** Natural-language description of the voice to speak in. */
3724
+ voiceDescription: string;
3725
+ /** Optional extra prompt context (≤8000 chars). */
3726
+ userPrompt?: string;
3727
+ }
3728
+ /** Input for {@link VoicesResource.dub}. */
3729
+ interface DubbingInput {
3730
+ /** URL of the audio to dub. */
3731
+ audioUrl: string;
3732
+ /** Target language ISO code (2–10 chars), e.g. `"es"`, `"pt-BR"`. */
3733
+ targetLanguage: string;
3734
+ /** Source language ISO code; auto-detected when omitted. */
3735
+ sourceLanguage?: string;
3736
+ /** Expected number of speakers (1–20) — improves separation when known. */
3737
+ numSpeakers?: number;
3738
+ /** Keep the original voices instead of cloning them into the target language. */
3739
+ disableVoiceCloning?: boolean;
3740
+ /** Drop the background/music bed from the dubbed output. */
3741
+ dropBackgroundAudio?: boolean;
3742
+ }
3743
+
3744
+ /**
3745
+ * Media ingestion + trimming — the source-preparation steps a Voice Changer Pro
3746
+ * flow (or any pipeline) needs before it has a clip to work on: pull a social
3747
+ * video into storage, copy a remote URL into storage, trim a video/audio to a
3748
+ * range, and probe a video's metadata. Each generation-style op returns a job id
3749
+ * to poll (`jobs.get(jobId)`); `videoMetadata` is a direct read.
3750
+ */
3751
+ declare class MediaResource {
3752
+ private client;
3753
+ constructor(client: NodaroClient);
3754
+ /**
3755
+ * Download a social video (YouTube / TikTok / Instagram / X / Facebook) into
3756
+ * your storage (`POST /v1/download-video`). `maxHeight` caps the resolution
3757
+ * (default "best"); `sectionStartSec` + `sectionEndSec` (both-or-neither) fetch
3758
+ * ONLY that time range instead of the whole video. Returns a `downloadId`;
3759
+ * progress streams from `GET /v1/download-video/progress/:downloadId`
3760
+ * (server-sent events) and the finished file lands in your library.
3761
+ */
3762
+ downloadVideo(input: {
3763
+ url: string;
3764
+ maxHeight?: number;
3765
+ sectionStartSec?: number;
3766
+ sectionEndSec?: number;
3767
+ }): Promise<{
3768
+ downloadId: string;
3769
+ }>;
3770
+ /**
3771
+ * Copy an external media URL into your Nodaro storage (`POST /v1/save-to-storage`)
3772
+ * — a server-side fetch, so nothing round-trips through the client. Poll
3773
+ * `jobs.get(jobId)`.
3774
+ */
3775
+ saveToStorage(input: {
3776
+ mediaUrl: string;
3777
+ filename?: string;
3778
+ mediaType?: "image" | "video" | "audio";
3779
+ }): Promise<{
3780
+ jobId: string;
3781
+ }>;
3782
+ /**
3783
+ * Trim a video to a range (`POST /v1/trim-video`). Give the range in whichever
3784
+ * unit fits: `startTime`/`endTime` seconds, `trim*Frames`, `trim*Seconds`, or
3785
+ * `keepFirst`/`keepLastSeconds`. Poll `jobs.get(jobId)`.
3786
+ */
3787
+ trimVideo(input: {
3788
+ videoUrl: string;
3789
+ startTime?: number;
3790
+ endTime?: number;
3791
+ trimStartFrames?: number;
3792
+ trimEndFrames?: number;
3793
+ trimStartSeconds?: number;
3794
+ trimEndSeconds?: number;
3795
+ keepFirstSeconds?: number;
3796
+ keepLastSeconds?: number;
3797
+ }): Promise<{
3798
+ jobId: string;
3799
+ }>;
3800
+ /**
3801
+ * Trim (and extract) audio from a video or audio source
3802
+ * (`POST /v1/trim-audio`) to `[startTime, endTime]` seconds, in `audioFormat`
3803
+ * (`mp3` default / `wav` / `aac`). Poll `jobs.get(jobId)`.
3804
+ */
3805
+ trimAudio(input: {
3806
+ videoUrl?: string;
3807
+ audioUrl?: string;
3808
+ audioFormat?: "mp3" | "wav" | "aac";
3809
+ startTime?: number;
3810
+ endTime?: number;
3811
+ }): Promise<{
3812
+ jobId: string;
3813
+ }>;
3814
+ /**
3815
+ * Probe a social video's metadata (`POST /v1/video-metadata`) — duration,
3816
+ * dimensions, title, live status — WITHOUT downloading it. A direct read, not a
3817
+ * job. Use it to decide whether to trim before importing.
3818
+ */
3819
+ videoMetadata(input: {
3820
+ url: string;
3821
+ }): Promise<VideoMetadata>;
3822
+ }
3823
+ /** Result of {@link MediaResource.videoMetadata}. Fields are best-effort — a probe may omit some. */
3824
+ interface VideoMetadata {
3825
+ durationSec?: number | null;
3826
+ width?: number | null;
3827
+ height?: number | null;
3828
+ title?: string | null;
3829
+ isLive?: boolean;
3830
+ [key: string]: unknown;
3831
+ }
3832
+
3833
+ /**
3834
+ * Audio primitives — the building blocks Voice Changer Pro composes internally
3835
+ * (separation, isolation, effect, mix, level), exposed standalone so a consumer
3836
+ * can run any single step or assemble its own pipeline. Each returns a job id to
3837
+ * poll (`jobs.get(jobId)`).
3838
+ */
3839
+ declare class AudioResource {
3840
+ private client;
3841
+ constructor(client: NodaroClient);
3842
+ /**
3843
+ * Separate an audio track into stems (`POST /v1/audio-separation`, Demucs).
3844
+ * `mode` `"vocal_instrumental"` (default) splits voice from music/SFX;
3845
+ * `"stems"` returns the full drums/bass/other/… breakdown. `quality`
3846
+ * `auto` (default) / `fast` / `best`.
3847
+ */
3848
+ separate(input: {
3849
+ audioUrl: string;
3850
+ mode?: "vocal_instrumental" | "stems";
3851
+ quality?: "auto" | "fast" | "best";
3852
+ }): Promise<{
3853
+ jobId: string;
3854
+ }>;
3855
+ /** Isolate the primary voice and strip background noise (`POST /v1/audio-isolation`, ElevenLabs). */
3856
+ isolate(input: {
3857
+ audioUrl: string;
3858
+ }): Promise<{
3859
+ jobId: string;
3860
+ }>;
3861
+ /**
3862
+ * Apply a reverb / echo / telephone / megaphone effect to an audio track
3863
+ * (`POST /v1/audio-fx`) — the same presets VCP's `voiceFx` uses, standalone.
3864
+ * `mix` (0–100) is the reverb wet/dry; `delayMs` + `decay` drive `echo`/`custom`;
3865
+ * `eqLow`/`eqHigh` (dB) shape telephone/megaphone.
3866
+ */
3867
+ applyFx(input: {
3868
+ audioUrl: string;
3869
+ preset?: AudioFxPreset;
3870
+ mix?: number;
3871
+ delayMs?: number;
3872
+ decay?: number;
3873
+ eqLow?: number;
3874
+ eqHigh?: number;
3875
+ }): Promise<{
3876
+ jobId: string;
3877
+ }>;
3878
+ /**
3879
+ * Layer multiple audio tracks into one (`POST /v1/mix-audio`). `audioUrls`
3880
+ * (2–20) are summed; optional `trackVolumes` (0–200% each, positionally) set
3881
+ * per-track level.
3882
+ */
3883
+ mix(input: {
3884
+ audioUrls: string[];
3885
+ trackVolumes?: number[];
3886
+ }): Promise<{
3887
+ jobId: string;
3888
+ }>;
3889
+ /**
3890
+ * Adjust an audio (or a video's audio) level (`POST /v1/adjust-volume`):
3891
+ * `volume` % (default 100), `normalize` to loudnorm, and `fadeIn`/`fadeOut`
3892
+ * seconds. Provide `audioUrl` or `videoUrl`.
3893
+ */
3894
+ adjustVolume(input: {
3895
+ audioUrl?: string;
3896
+ videoUrl?: string;
3897
+ volume?: number;
3898
+ normalize?: boolean;
3899
+ fadeIn?: number;
3900
+ fadeOut?: number;
3901
+ }): Promise<{
3902
+ jobId: string;
3903
+ }>;
3904
+ /**
3905
+ * Concatenate audio segments end-to-end (`POST /v1/combine-audio`). Each
3906
+ * segment is a `url` with an optional `[startTime, endTime]` sub-range.
3907
+ */
3908
+ combine(input: {
3909
+ segments: Array<{
3910
+ url: string;
3911
+ startTime?: number;
3912
+ endTime?: number;
3913
+ }>;
3914
+ }): Promise<{
3915
+ jobId: string;
3916
+ }>;
3917
+ }
3649
3918
 
3650
3919
  /**
3651
3920
  * Authenticated user's credit balance — the shape of `GET /v1/user/credits`'s
@@ -4082,6 +4351,8 @@ declare class NodaroClient {
4082
4351
  readonly reduce: ReduceResource;
4083
4352
  readonly promptHelper: PromptHelperResource;
4084
4353
  readonly voices: VoicesResource;
4354
+ readonly media: MediaResource;
4355
+ readonly audio: AudioResource;
4085
4356
  readonly credits: CreditsResource;
4086
4357
  readonly uploads: UploadsResource;
4087
4358
  readonly library: LibraryResource;
@@ -4176,4 +4447,4 @@ interface ApiErrorBody {
4176
4447
  }
4177
4448
  declare function throwFromResponse(status: number, body: ApiErrorBody): never;
4178
4449
 
4179
- export { type AccessTokenResponse, type AnalyzeInput, type AnalyzeResult, type AppRun, type AppRunResult, type ApplyChatProposalResult, type ApproveCreatureMainImageResult, type ApproveMainImageResult, type ApproveObjectMainImageResult, type ApprovePortraitResult, AppsResource, type Auth, type BranchPipelineInput, type BranchPipelineResult, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DuplicateCharacterInput, type EnhanceInput, 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 GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, type ModelCostsResult, 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, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, 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 VoiceChangerProInput, type VoiceChangerProVoice, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };
4450
+ 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, CREATURE_ASSET_TYPES, CallbackAuth, type CancelExecutionParams, type CancelJobResult, type Character, type CharacterDetail, type CharacterUsage, CharactersResource, type ChatStageResult, type ChatTurn, type ClientOptions, CommunityResource, type CreateCreatureInput, type CreateDeveloperAppInput, type CreateDeveloperAppResult, type CreateLocationInput, type CreateObjectInput, type CreateProjectInput, type CreateWorkflowInput, type Creature, type CreatureAssetType, type CreatureDetail, type CreatureReferencePhoto, type CreatureReferencePhotoKind, CreaturesResource, CreditsResource, type DeleteAppRunResult, type DeveloperApp, type DeveloperAppScope, type DeveloperAppStatus, DeveloperAppsResource, type DubbingInput, type DuplicateCharacterInput, type EnhanceInput, 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 GenerateSurroundContinuationInput, type GenerateVideoParams, type GetPickerCatalogOptions, InsufficientCreditsError, type Job, JobAbortedError, JobFailedError, type JobStatus, type JobStatusResult, JobTimeoutError, JobsResource, type LibraryAsset, LibraryResource, type ListAppRunsParams, type ListAppsParams, type ListAppsResult, type ListCharactersParams, type ListCreaturesParams, type ListExecutionsForWorkflowParams, type ListExecutionsPage, type ListLibraryParams, type ListLibraryResult, type ListLocationsParams, type ListObjectsParams, type ListWorkflowsParams, type Location, type LocationDetail, type LocationReferencePhoto, type LocationReferencePhotoKind, LocationsResource, MediaResource, type ModelCostsResult, 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, type OutputType, type PickerCatalog, type PickerCatalogSummary, PickerCatalogsResource, type PickerDimension, type PickerOption, PipelinesResource, PresetsResource, type Project, ProjectsResource, PromptHelperResource, type PromptResult, type PublishedApp, type PublishedAppDetail, RateLimitedError, type RecaptionCreatureResult, type RecaptionLocationResult, type RecaptionObjectResult, type RecaptionResult, type ReduceInput, ReduceResource, type ReduceResult, type ReferencePhoto, type ReferencePhotoKind, type RotateSecretResult, type RunAndWaitOptions, type RunManyResult, type RunNodeResult, type RunWorkflowParams, type RunWorkflowResult, StaticTokenAuth, StorageExceededError, type StructuredReferenceParams, UnauthorizedError, type UpdateCreatureInput, type UpdateCreatureResult, type UpdateDeveloperAppInput, type UpdateLocationInput, type UpdateLocationResult, type UpdateObjectInput, type UpdateObjectResult, type UpdateProjectInput, 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, type VoiceChangerProInput, type VoiceChangerProVoice, type VoiceDesignInput, type VoiceRemixInput, VoicesResource, type Workflow, type WorkflowExecution, type WorkflowExecutionSummary, WorkflowsResource, buildPersonSeedPrompt, createClient, supabaseAuth, throwFromResponse };