import type { Command } from 'commander'; import { type GenerateAudioInput, type StandaloneGeneratedAsset } from './assets'; import type { CliCredentials } from './config'; type GenerateAudioOptions = { mode: string; additionalPrompt?: string; model?: string; outputFormat?: string; projectId?: string; sessionId?: string; title?: string; durationSeconds?: string; loop?: boolean; promptInfluence?: string; forceInstrumental?: boolean; text?: string; voiceId?: string; languageCode?: string; seed?: string; stability?: string; similarityBoost?: string; style?: string; speed?: string; speakerBoost?: boolean; pronunciationDictionaryIds?: string; output?: string; }; export type GenerateAudioCommandDependencies = { requireAuth: () => CliCredentials; generateAudio: (creds: CliCredentials, input: GenerateAudioInput, options?: { timeoutMs?: number; }) => Promise; saveGeneratedAsset: (asset: NonNullable, outputPath: string, options?: { apiUrl?: string; }) => Promise; printJson: (value: unknown) => void; fail: (message: string) => never; }; export declare const AUDIO_MODES: readonly ["sound_effect", "music", "text_to_speech"]; export declare const AUDIO_OPTIONS: { flags: string; description: string; default?: string; shared?: boolean; }[]; /** Attach the audio flags. `skipShared` omits the ones the target command already declares. */ export declare function addAudioOptions(command: Command, opts?: { skipShared?: boolean; }): Command; export type AudioFlagValues = Omit; /** * Parse the audio flags into the library's input shape. Shared by both routes so a flag can never * mean one thing synchronously and another durably. */ export declare function buildAudioInput(prompt: string | undefined, opts: AudioFlagValues, fail: (message: string) => never): GenerateAudioInput; /** * Everything that can be known to be wrong BEFORE any LIX moves. Returns the problems rather than * throwing, so callers can render them all at once with the fix named. * * The voice check is deliberately NOT done here — it needs the catalog, and a network lookup that * fails must not become a new way to block a valid job. */ export declare function validateAudioRequest(prompt: string | undefined, opts: AudioFlagValues): string[]; export declare function registerGenerateAudioCommand(assets: Command, dependencies: GenerateAudioCommandDependencies): void; export {};