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; }) => Promise; /** * A loosely-typed reference descriptor as seen at the seedance-direct submit * boundary. Callers may pass plain string paths, `Asset://` avatar URIs, or * structured `{ path, assetUri, kind }` descriptors. Only an explicit * `kind: 'photoreal-face'` tag is treated as a blocked photoreal face; every * other shape (Asset Library avatars, silhouette plates, untagged paths) is * allowed. */ type SeedanceReferenceDescriptor = string | { path?: string; assetUri?: string; kind?: string; [key: string]: unknown; }; /** * Reject references that are explicitly tagged as photoreal human faces before * they reach the seedance-direct (ark/Seedance 2.0) submit path. The Ark/xskill * "real person" content filter rejects photoreal faces passed as * `reference_images`, and raw face URLs do not lock identity anyway — character * consistency must go through the managed Asset Library (`Asset://` avatars). * * The guard is deliberately conservative: it throws ONLY when a descriptor * carries `kind: 'photoreal-face'`. `Asset://` avatars, silhouette/no-face * plates, and untagged string paths all pass through untouched, so it never * heuristically blocks a legitimate reference. Scoped to seedance-direct; it * runs before `assertReferenceBudget` and does not replace it. */ export declare function assertNoPhotorealFaceRefs(refs: readonly SeedanceReferenceDescriptor[]): void; /** * Fail fast when a reference set exceeds Seedance 2.0's per-generation limits * (<=9 image, <=3 video, <=3 audio references). Classifies via the same * `classifyReferencePaths` logic used to route references into provider params, * so image/video/audio counts always agree with what would actually be sent. * Returns void at or below every limit; throws a clear Error otherwise. */ export declare function assertReferenceBudget(referencePaths: string[]): void; export declare function submitSeedanceDirectNative(payload: VideoExecutionPayload, options?: { env?: NodeJS.ProcessEnv; fetchImpl?: FetchLike; }): Promise<{ externalJobId: string; rawResult: unknown; }>; export declare function pollSeedanceDirectNative(input: { outputDir: string; externalJobId: string; workspaceRoot: string; }, options?: { env?: NodeJS.ProcessEnv; fetchImpl?: FetchLike; }): Promise; export declare function cancelSeedanceDirectNative(input: { outputDir: string; externalJobId: string; workspaceRoot: string; }, options?: { env?: NodeJS.ProcessEnv; fetchImpl?: FetchLike; }): Promise; export {}; //# sourceMappingURL=native-seedance.d.ts.map