UNPKG

@superbuilders/mureka

Version:

TypeScript client for the Mureka AI API, providing type-safe access to music generation, lyrics creation, speech synthesis, and fine-tuning capabilities

931 lines 32.6 kB
import * as z from "zod"; /** * Error code 400: Invalid request parameters. */ export declare const ErrInvalidRequest: Readonly<Error>; /** * Error code 401: Invalid authentication. */ export declare const ErrInvalidAuthentication: Readonly<Error>; /** * Error code 403: Access from an unsupported region. */ export declare const ErrForbidden: Readonly<Error>; /** * Error code 429: Rate limit reached or current quota exceeded. */ export declare const ErrRateLimitOrQuotaExceeded: Readonly<Error>; /** * Error code 500: Server error. */ export declare const ErrServerError: Readonly<Error>; /** * Error code 503: Engine overloaded. */ export declare const ErrEngineOverloaded: Readonly<Error>; /** * The purposes available for file uploads. */ declare const PURPOSES: readonly ["reference", "vocal", "melody", "instrumental", "voice", "fine-tuning"]; type Purpose = (typeof PURPOSES)[number]; /** * The models available for music generation. */ declare const MODELS: readonly ["auto", "mureka-6", "mureka-5.5"]; type Model = (typeof MODELS)[number]; /** * The voices available for speech generation. */ declare const VOICES: readonly ["Ethan", "Victoria", "Jake", "Luna", "Ema"]; type Voice = (typeof VOICES)[number]; /** * Schema for the request body of the upload file endpoint. */ interface UploadFileInput { /** The File object (not file name) to be uploaded. */ file: File; /** The intended purpose of the uploaded file. Valid values: reference (mp3, max 30s), vocal (mp3, max 30s), melody (mp3, max 60s), instrumental (mp3, max 30s), voice (mp3, max 15s). */ purpose: Exclude<Purpose, "fine-tuning">; } /** * Schema for the response body of the upload file endpoint. */ declare const UploadFileResponseSchema: z.ZodObject<{ id: z.ZodString; bytes: z.ZodNumber; created_at: z.ZodNumber; filename: z.ZodString; purpose: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; bytes: number; created_at: number; filename: string; purpose: string; }, { id: string; bytes: number; created_at: number; filename: string; purpose: string; }>; type UploadFileResponse = z.infer<typeof UploadFileResponseSchema>; /** * Schema for the request body of the generate lyrics endpoint. */ interface GenerateLyricsInput { /** The prompt to generate lyrics for. */ prompt: string; } /** * Schema for the response body of the generate lyrics endpoint. */ declare const GenerateLyricsResponseSchema: z.ZodObject<{ title: z.ZodString; lyrics: z.ZodString; }, "strip", z.ZodTypeAny, { title: string; lyrics: string; }, { title: string; lyrics: string; }>; type GenerateLyricsResponse = z.infer<typeof GenerateLyricsResponseSchema>; /** * Schema for the request body of the extend lyrics endpoint. */ interface ExtendLyricsInput { /** Lyrics to be continued. */ lyrics: string; } /** * Schema for the response body of the extend lyrics endpoint. */ declare const ExtendLyricsResponseSchema: z.ZodObject<{ lyrics: z.ZodString; }, "strip", z.ZodTypeAny, { lyrics: string; }, { lyrics: string; }>; type ExtendLyricsResponse = z.infer<typeof ExtendLyricsResponseSchema>; /** * Schema for the request body of the generate song endpoint. */ interface GenerateSongInput { /** Lyrics for generated music. */ lyrics: string; /** The model to use. Use auto to select the latest model. You can also use a model via fine-tuning. In this case, only the prompt or reference_id control options are available. */ model: Model; /** Control music generation by inputting a prompt. When this option is selected, other control options (reference_id, vocal_id, melody_id) cannot be selected. */ prompt?: string; /** Control music generation by referencing music, generated through the files/upload API (for reference purpose). When this option is selected, other control options (prompt, melody_id) cannot be selected. */ reference_id?: string; /** Control music generation by any voice you like, generated through the files/upload API (for vocal purpose). When this option is selected, other control options (prompt, melody_id) cannot be selected. */ vocal_id?: string; /** Control music generation by melody idea, generated through the files/upload API (for melody purpose). When this option is selected, other control options (prompt, reference_id, vocal_id) cannot be selected. */ melody_id?: string; } /** * Schema for the response body of the generate song endpoint. */ declare const GenerateSongResponseSchema: z.ZodObject<{ id: z.ZodString; created_at: z.ZodNumber; finished_at: z.ZodOptional<z.ZodNumber>; model: z.ZodString; status: z.ZodEnum<["preparing", "queued", "running", "succeeded", "failed", "timeouted", "cancelled"]>; failed_reason: z.ZodOptional<z.ZodString>; choices: z.ZodOptional<z.ZodArray<z.ZodObject<{ index: z.ZodOptional<z.ZodNumber>; url: z.ZodString; flac_url: z.ZodString; duration: z.ZodNumber; lyrics_sections: z.ZodArray<z.ZodObject<{ section_type: z.ZodEnum<["intro", "verse", "pre-chorus", "chorus", "bridge", "breakdown", "outro"]>; start: z.ZodNumber; end: z.ZodNumber; lines: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; text: z.ZodString; }, "strip", z.ZodTypeAny, { start: number; end: number; text: string; }, { start: number; end: number; text: string; }>, "many">>; }, "strip", z.ZodTypeAny, { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }, { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }, { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; model: string; finished_at?: number | undefined; failed_reason?: string | undefined; choices?: { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }[] | undefined; }, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; model: string; finished_at?: number | undefined; failed_reason?: string | undefined; choices?: { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }[] | undefined; }>; type GenerateSongResponse = z.infer<typeof GenerateSongResponseSchema>; /** * Schema for the request params of the query song task endpoint. */ interface QuerySongTaskInput { /** The task_id of the music generation task. */ task_id: string; } /** * Schema for the response body of the query song task endpoint. */ declare const QuerySongTaskResponseSchema: z.ZodObject<{ id: z.ZodString; created_at: z.ZodNumber; finished_at: z.ZodOptional<z.ZodNumber>; model: z.ZodString; status: z.ZodEnum<["preparing", "queued", "running", "succeeded", "failed", "timeouted", "cancelled"]>; failed_reason: z.ZodOptional<z.ZodString>; choices: z.ZodOptional<z.ZodArray<z.ZodObject<{ index: z.ZodOptional<z.ZodNumber>; url: z.ZodString; flac_url: z.ZodString; duration: z.ZodNumber; lyrics_sections: z.ZodArray<z.ZodObject<{ section_type: z.ZodEnum<["intro", "verse", "pre-chorus", "chorus", "bridge", "breakdown", "outro"]>; start: z.ZodNumber; end: z.ZodNumber; lines: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; text: z.ZodString; }, "strip", z.ZodTypeAny, { start: number; end: number; text: string; }, { start: number; end: number; text: string; }>, "many">>; }, "strip", z.ZodTypeAny, { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }, { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }, { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; model: string; finished_at?: number | undefined; failed_reason?: string | undefined; choices?: { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }[] | undefined; }, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; model: string; finished_at?: number | undefined; failed_reason?: string | undefined; choices?: { url: string; flac_url: string; duration: number; lyrics_sections: { start: number; end: number; section_type: "intro" | "verse" | "pre-chorus" | "chorus" | "bridge" | "breakdown" | "outro"; lines?: { start: number; end: number; text: string; }[] | undefined; }[]; index?: number | undefined; }[] | undefined; }>; type QuerySongTaskResponse = z.infer<typeof QuerySongTaskResponseSchema>; /** * Schema for the request body of the stem song endpoint. */ interface StemSongInput { /** The URL of the music that needs to be split into tracks. URL in base64 format is also supported, with a maximum data size of 10 MB. */ url: string; } /** * Schema for the response body of the stem song endpoint. */ declare const StemSongResponseSchema: z.ZodObject<{ zip_url: z.ZodString; expires_at: z.ZodNumber; }, "strip", z.ZodTypeAny, { zip_url: string; expires_at: number; }, { zip_url: string; expires_at: number; }>; type StemSongResponse = z.infer<typeof StemSongResponseSchema>; /** * Schema for the request body of the generate instrumental endpoint. */ interface GenerateInstrumentalInput { /** The model to use. Use auto to select the latest model. */ model: Exclude<Model, "mureka-5.5">; /** Control instrumental generation by inputting a prompt. When this option is selected, other control options (instrumental_id) cannot be selected. */ prompt?: string; /** Control instrumental generation by referencing music, generated through the files/upload API (for instrumental purpose). When this option is selected, other control options (prompt) cannot be selected. */ instrumental_id?: string; } /** * Schema for the response body of the generate instrumental endpoint. */ declare const GenerateInstrumentalResponseSchema: z.ZodObject<{ id: z.ZodString; created_at: z.ZodNumber; finished_at: z.ZodNumber; model: z.ZodString; status: z.ZodEnum<["preparing", "queued", "running", "succeeded", "failed", "timeouted", "cancelled"]>; failed_reason: z.ZodOptional<z.ZodString>; choices: z.ZodArray<z.ZodObject<{ index: z.ZodNumber; url: z.ZodString; flac_url: z.ZodString; duration: z.ZodNumber; }, "strip", z.ZodTypeAny, { index: number; url: string; flac_url: string; duration: number; }, { index: number; url: string; flac_url: string; duration: number; }>, "many">; }, "strip", z.ZodTypeAny, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; choices: { index: number; url: string; flac_url: string; duration: number; }[]; failed_reason?: string | undefined; }, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; choices: { index: number; url: string; flac_url: string; duration: number; }[]; failed_reason?: string | undefined; }>; type GenerateInstrumentalResponse = z.infer<typeof GenerateInstrumentalResponseSchema>; /** * Schema for the request params of the query instrumental task endpoint. */ interface QueryInstrumentalTaskInput { /** The task_id of the instrumental generation task. */ task_id: string; } /** * Schema for the response body of the query instrumental task endpoint. */ declare const QueryInstrumentalTaskResponseSchema: z.ZodObject<{ id: z.ZodString; created_at: z.ZodNumber; finished_at: z.ZodNumber; model: z.ZodString; status: z.ZodEnum<["preparing", "queued", "running", "succeeded", "failed", "timeouted", "cancelled"]>; failed_reason: z.ZodOptional<z.ZodString>; choices: z.ZodArray<z.ZodObject<{ index: z.ZodNumber; url: z.ZodString; flac_url: z.ZodString; duration: z.ZodNumber; }, "strip", z.ZodTypeAny, { index: number; url: string; flac_url: string; duration: number; }, { index: number; url: string; flac_url: string; duration: number; }>, "many">; }, "strip", z.ZodTypeAny, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; choices: { index: number; url: string; flac_url: string; duration: number; }[]; failed_reason?: string | undefined; }, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; choices: { index: number; url: string; flac_url: string; duration: number; }[]; failed_reason?: string | undefined; }>; type QueryInstrumentalTaskResponse = z.infer<typeof QueryInstrumentalTaskResponseSchema>; /** * Schema for the request body of the create upload endpoint. */ interface CreateUploadInput { /** Give a name for this upload, or the name of the large file to upload. */ upload_name: string; /** The intended purpose of this upload. */ purpose: Extract<Purpose, "fine-tuning">; /** The total size of this upload. If not provided, the size will not be checked at the end. */ bytes?: number; } /** * Schema for the response body of the create upload endpoint. */ declare const CreateUploadResponseSchema: z.ZodObject<{ id: z.ZodString; upload_name: z.ZodString; purpose: z.ZodString; bytes: z.ZodNumber; created_at: z.ZodNumber; expires_at: z.ZodNumber; status: z.ZodEnum<["pending", "completed", "cancelled"]>; parts: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { id: string; bytes: number; created_at: number; purpose: string; status: "cancelled" | "pending" | "completed"; expires_at: number; upload_name: string; parts: string[]; }, { id: string; bytes: number; created_at: number; purpose: string; status: "cancelled" | "pending" | "completed"; expires_at: number; upload_name: string; parts: string[]; }>; type CreateUploadResponse = z.infer<typeof CreateUploadResponseSchema>; /** * Schema for the request body of the add upload part endpoint. */ interface AddUploadPartInput { /** The File object (not file name) to be uploaded. For the following purposes: fine-tuning: Supported format (mp3). The audio duration is between 30 seconds and 270 seconds. */ file: File; /** The ID of the Upload object that this Part was added to. */ upload_id: string; } /** * Schema for the response body of the add upload part endpoint. */ declare const AddUploadPartResponseSchema: z.ZodObject<{ id: z.ZodString; upload_id: z.ZodString; created_at: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: string; created_at: number; upload_id: string; }, { id: string; created_at: number; upload_id: string; }>; type AddUploadPartResponse = z.infer<typeof AddUploadPartResponseSchema>; /** * Schema for the request body of the complete upload endpoint. */ interface CompleteUploadInput { /** The ID of the Upload object. */ upload_id: string; /** The ordered list of part IDs. If this parameter is empty, it means using all parts added by uploads/add, in the order they were added. */ part_ids?: string[]; } /** * Schema for the response body of the complete upload endpoint. */ declare const CompleteUploadResponseSchema: z.ZodObject<{ id: z.ZodString; upload_name: z.ZodString; purpose: z.ZodString; bytes: z.ZodNumber; created_at: z.ZodNumber; expires_at: z.ZodNumber; status: z.ZodEnum<["pending", "completed", "cancelled"]>; parts: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { id: string; bytes: number; created_at: number; purpose: string; status: "cancelled" | "pending" | "completed"; expires_at: number; upload_name: string; parts: string[]; }, { id: string; bytes: number; created_at: number; purpose: string; status: "cancelled" | "pending" | "completed"; expires_at: number; upload_name: string; parts: string[]; }>; type CompleteUploadResponse = z.infer<typeof CompleteUploadResponseSchema>; /** * Schema for the request body of the create fine-tuning task endpoint. */ interface CreateFineTuningTaskInput { /** The ID of the upload object with status completed. An effective fine-tuning requires uploading 100-200 songs. */ upload_id: string; /** A string of up to 32 characters that will be added to your fine-tuned model name. Only lowercase letters, numbers, and hyphens are allowed. */ suffix: string; } /** * Schema for the response body of the create fine-tuning task endpoint. */ declare const CreateFineTuningTaskResponseSchema: z.ZodObject<{ id: z.ZodString; upload_id: z.ZodString; model: z.ZodString; created_at: z.ZodNumber; finished_at: z.ZodNumber; status: z.ZodEnum<["preparing", "queued", "running", "succeeded", "failed", "timeouted", "cancelled"]>; failed_reason: z.ZodOptional<z.ZodString>; fine_tuned_model: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; upload_id: string; fine_tuned_model: string; failed_reason?: string | undefined; }, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; upload_id: string; fine_tuned_model: string; failed_reason?: string | undefined; }>; type CreateFineTuningTaskResponse = z.infer<typeof CreateFineTuningTaskResponseSchema>; /** * Schema for the request params of the query fine-tuning task endpoint. */ interface QueryFineTuningTaskInput { /** The task_id of the fine-tuning task. */ task_id: string; } /** * Schema for the response body of the query fine-tuning task endpoint. */ declare const QueryFineTuningTaskResponseSchema: z.ZodObject<{ id: z.ZodString; upload_id: z.ZodString; model: z.ZodString; created_at: z.ZodNumber; finished_at: z.ZodNumber; status: z.ZodEnum<["preparing", "queued", "running", "succeeded", "failed", "timeouted", "cancelled"]>; failed_reason: z.ZodOptional<z.ZodString>; fine_tuned_model: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; upload_id: string; fine_tuned_model: string; failed_reason?: string | undefined; }, { id: string; created_at: number; status: "preparing" | "queued" | "running" | "succeeded" | "failed" | "timeouted" | "cancelled"; finished_at: number; model: string; upload_id: string; fine_tuned_model: string; failed_reason?: string | undefined; }>; type QueryFineTuningTaskResponse = z.infer<typeof QueryFineTuningTaskResponseSchema>; /** * Schema for the request body of the generate speech endpoint. */ interface GenerateSpeechInput { /** The text to generate audio for. The maximum length is 500 characters. */ text: string; /** The voice to use when generating the audio. When this option is selected, other control options (voice_id) cannot be selected. */ voice?: Voice; /** Control audio generation by referencing voice, generated through the files/upload API (for voice purpose). When this option is selected, other control options (voice) cannot be selected. */ voice_id?: string; } /** * Schema for the response body of the generate speech endpoint. */ declare const GenerateSpeechResponseSchema: z.ZodObject<{ url: z.ZodString; expires_at: z.ZodNumber; }, "strip", z.ZodTypeAny, { url: string; expires_at: number; }, { url: string; expires_at: number; }>; type GenerateSpeechResponse = z.infer<typeof GenerateSpeechResponseSchema>; /** * Schema for a single conversation item in the podcast endpoint. */ interface PodcastConversationItem { /** The text to generate audio for. The maximum length is 400 characters. */ text: string; /** The voice to use. */ voice: Voice; } /** * Schema for the request body of the generate podcast endpoint. */ interface GeneratePodcastInput { /** Conversation array, The maximum length of the array is 10. */ conversations: PodcastConversationItem[]; } /** * Schema for the response body of the generate podcast endpoint. */ declare const GeneratePodcastResponseSchema: z.ZodObject<{ url: z.ZodString; expires_at: z.ZodNumber; }, "strip", z.ZodTypeAny, { url: string; expires_at: number; }, { url: string; expires_at: number; }>; type GeneratePodcastResponse = z.infer<typeof GeneratePodcastResponseSchema>; /** * Schema for the response body of the account billing endpoint. */ declare const BillingInfoResponseSchema: z.ZodObject<{ account_id: z.ZodNumber; balance: z.ZodNumber; total_recharge: z.ZodNumber; total_spending: z.ZodNumber; concurrent_request_limit: z.ZodNumber; }, "strip", z.ZodTypeAny, { account_id: number; balance: number; total_recharge: number; total_spending: number; concurrent_request_limit: number; }, { account_id: number; balance: number; total_recharge: number; total_spending: number; concurrent_request_limit: number; }>; type BillingInfoResponse = z.infer<typeof BillingInfoResponseSchema>; /** * Configuration for the Mureka API client. */ interface ClientConfig { /** The API key used for authentication. */ apiKey: string; /** Optional custom base URL for the API. Defaults to the official Mureka API endpoint. */ apiBaseUrl?: string; } /** * Mureka API client interface providing access to all API endpoints. * * This interface defines all available methods for interacting with the Mureka AI API, * including music generation, lyrics creation, speech synthesis, and fine-tuning capabilities. * Each method is type-safe and returns a Promise that resolves to the appropriate response type. */ export interface Client { /** * Upload a file for various purposes like reference, vocal, melody, etc. * @param input - Configuration for the file upload including purpose and file data * @returns Promise resolving to upload response with file ID and metadata */ uploadFile: (input: UploadFileInput) => Promise<UploadFileResponse>; /** * Generate lyrics from a prompt. * @param input - Configuration including prompt text and generation parameters * @returns Promise resolving to generated lyrics */ generateLyrics: (input: GenerateLyricsInput) => Promise<GenerateLyricsResponse>; /** * Extend existing lyrics with additional content. * @param input - Configuration including existing lyrics and extension parameters * @returns Promise resolving to extended lyrics */ extendLyrics: (input: ExtendLyricsInput) => Promise<ExtendLyricsResponse>; /** * Generate a song using provided lyrics. * @param input - Configuration including lyrics and generation parameters * @returns Promise resolving to song generation task details */ generateSong: (input: GenerateSongInput) => Promise<GenerateSongResponse>; /** * Check the status of a song generation task. * @param input - Task ID and query parameters * @returns Promise resolving to current task status and results if complete */ querySongTask: (input: QuerySongTaskInput) => Promise<QuerySongTaskResponse>; /** * Split a song into individual tracks. * @param input - Configuration including song ID and stemming parameters * @returns Promise resolving to separated audio tracks */ stemSong: (input: StemSongInput) => Promise<StemSongResponse>; /** * Generate instrumental music. * @param input - Configuration including generation parameters and style preferences * @returns Promise resolving to instrumental generation task details */ generateInstrumental: (input: GenerateInstrumentalInput) => Promise<GenerateInstrumentalResponse>; /** * Check the status of an instrumental generation task. * @param input - Task ID and query parameters * @returns Promise resolving to current task status and results if complete */ queryInstrumentalTask: (input: QueryInstrumentalTaskInput) => Promise<QueryInstrumentalTaskResponse>; /** * Initialize a file upload for fine-tuning. * @param input - Configuration for the upload including purpose and metadata * @returns Promise resolving to upload initialization details */ createUpload: (input: CreateUploadInput) => Promise<CreateUploadResponse>; /** * Add parts to an ongoing upload. * @param input - Configuration including upload ID, part number, and data * @returns Promise resolving to part upload confirmation */ addUploadPart: (input: AddUploadPartInput) => Promise<AddUploadPartResponse>; /** * Finalize a multipart upload. * @param input - Configuration including upload ID and completion parameters * @returns Promise resolving to upload completion confirmation */ completeUpload: (input: CompleteUploadInput) => Promise<CompleteUploadResponse>; /** * Start a fine-tuning task with uploaded files. * @param input - Configuration including model parameters and training data * @returns Promise resolving to fine-tuning task details */ createFineTuningTask: (input: CreateFineTuningTaskInput) => Promise<CreateFineTuningTaskResponse>; /** * Check the status of a fine-tuning task. * @param input - Task ID and query parameters * @returns Promise resolving to current task status and results if complete */ queryFineTuningTask: (input: QueryFineTuningTaskInput) => Promise<QueryFineTuningTaskResponse>; /** * Convert text to speech using specified voice. * @param input - Configuration including text content and voice selection * @returns Promise resolving to generated speech audio URL */ generateSpeech: (input: GenerateSpeechInput) => Promise<GenerateSpeechResponse>; /** * Generate a podcast-style conversation. * @param input - Configuration including conversation array and generation parameters * @returns Promise resolving to generated podcast audio URL */ generatePodcast: (input: GeneratePodcastInput) => Promise<GeneratePodcastResponse>; /** * Retrieve account billing information. * @returns Promise resolving to account balance, spending history, and limits */ getBillingInfo: () => Promise<BillingInfoResponse>; } /** * Create a Mureka API client. * @param apiKey - The API key to use for the client. * @returns A Mureka API client. */ export declare function createClient(config: ClientConfig): Client; export {}; //# sourceMappingURL=index.d.ts.map