import type { VideoExecutionCancelResult, VideoExecutionPayload, VideoExecutionPollResult } from './types.js'; interface FetchLikeResponse { ok: boolean; status: number; text(): Promise; json(): Promise; arrayBuffer(): Promise; } type FetchLike = (input: string, init?: { method?: string; headers?: Record; body?: string | Uint8Array; }) => Promise; /** * Does this Dreamina model accept an explicit `audio` parameter? * * The seedance-2.0 family does NOT — verified against the live API 2026-08-03, * which answers `400 {"error":"Parameter audio not supported"}` and fails the * whole submit. It does not need one either: that render came back with real * audio regardless (aac stereo, mean -19.5 dB), so the model generates sound by * default and simply has no toggle. Sending the parameter can only lose a submit. */ export declare function dreaminaAudioParamSupported(model: string): boolean; /** * Dreamina Omni Reference requires the prompt to reference each omni slot as * `@imageN`/`@videoN`/`@audioN` (1-based) — a plain prompt is rejected with HTTP * 400 ("prompt must contain at least one @imageN/@videoN/@audioN reference"). * Prepend any markers the prompt does not already contain so an operator can write * plain dialogue (as on the other voice-lock routes). Operator-authored markers — * e.g. a per-line `@video1` for speaker→voice binding — survive prompt processing * (reserved in prompt-rules) and are detected here, so they are left in place and * never duplicated. The `(?!\d)` guard stops `@image1` matching `@image10`. Pure. */ export declare function ensureOmniMarkers(prompt: string, counts: { images: number; videos: number; audios: number; }): string; export declare function submitDreaminaUseApiNative(payload: VideoExecutionPayload, options?: { env?: NodeJS.ProcessEnv; fetchImpl?: FetchLike; }): Promise<{ externalJobId: string; rawResult: unknown; }>; export declare function pollDreaminaUseApiNative(input: { outputDir: string; externalJobId: string; workspaceRoot: string; }, options?: { env?: NodeJS.ProcessEnv; fetchImpl?: FetchLike; }): Promise; /** * Stop WAITING for scenes the provider has left in flight. This is not a cancel: * there is no provider-side cancel here, so the remote job keeps running and * keeps billing, and the text says so. It exists because this poll ends only on a * provider-reported state, so a wedged scene would otherwise be polled forever. * The whole job is abandoned (a poll reports `failed` as soon as one scene has, * so a sibling that finished later would never be ingested), but only scenes * still `submitted` change: a completed scene keeps its clip and an earlier * failure keeps its own reason. No network call is made. It cannot be undone: * nothing re-polls a failed scene. */ export declare function abandonDreaminaUseApiNativeJob(input: { outputDir: string; externalJobId: string; dryRun?: boolean; }): Promise<{ abandonedScenes: number[]; untouchedScenes: Array<{ sceneIndex: number; status: string; }>; }>; export declare function cancelDreaminaUseApiNative(input: { outputDir: string; externalJobId: string; workspaceRoot: string; }): Promise; export {}; //# sourceMappingURL=native-dreamina.d.ts.map