/** * SFX / foley clip generation orchestrator. * * Thin wrapper over the audio-platform SFX backend registry (ElevenLabs Sound * Effects today): generates one sound-effect clip from a text prompt, writes it * to `projects//artifacts/audio/sfx-.mp3`, and persists an `sfx.json` * artifact listing every clip generated for the project (append-on-repeat). * * Pure-ish: `env`/`fetcher` are threaded through so tests run fully offline. * Inert (throws a clear error) when no SFX backend is configured. */ export declare const SFX_SCHEMA_VERSION = 1; export interface SfxClip { prompt: string; /** Project-relative path to the generated clip. */ path: string; durationMs: number; backendId: string; } export interface SfxArtifact { schemaVersion: typeof SFX_SCHEMA_VERSION; projectSlug: string; generatedAt: string; clips: SfxClip[]; } export interface GenerateSfxOptions { workspaceRoot: string; slug: string; prompt: string; durationSec?: number; promptInfluence?: number; /** Restrict to this backend id (defaults to the first AVAILABLE SFX backend). */ backendId?: string; dryRun?: boolean; env?: NodeJS.ProcessEnv; fetcher?: typeof fetch; } export declare function sfxArtifactPathFor(root: string, slug: string): string; export declare function sfxAudioDirFor(root: string, slug: string): string; export declare function readSfxArtifact(root: string, slug: string): Promise; /** * Generate one SFX clip and append it to the project's sfx.json. Returns the * new clip plus the full updated artifact. */ export declare function generateSfx(options: GenerateSfxOptions): Promise<{ clip: SfxClip; artifact: SfxArtifact; }>; //# sourceMappingURL=sfx.d.ts.map