import type { VideoExecutionPayload, VideoExecutionPollResult } from './types.js'; export declare function loadWorkspaceEnv(workspaceRoot: string, env: NodeJS.ProcessEnv): Promise; export declare const DEFAULT_VEO_COMMAND_TIMEOUT_MS = 600000; export declare function isSessionRefreshFailure(detail: string): boolean; /** * Google's intellectual-property classifier flagged an INPUT IMAGE as * copyrighted, branded or recognizable content. * * The one Flow refusal that does NOT improve on retry (spec 2026-09-01): the * image is identical on every draw, so it is flagged again every time. It has * to be distinguished from probabilistic moderation because a job can carry * BOTH — `VIDEO_EDIT_BLOCKED` alongside `IP_PROHIBITED` — and then the * `[A-Z_]+_BLOCKED` alternation below would classify the whole thing as * retryable/softenable moderation. * * NOTE the name is a trap: the "IP" is *intellectual property*, nothing to do * with network addresses. Someone reading `IP_PROHIBITED` in a log will * otherwise start debugging proxies and egress rules. * * Canonical home for this predicate — motion-overlay's V2V transport imports it * rather than keeping a second copy that could drift. */ export declare function isIpProhibitedFailure(detail: string): boolean; /** * Classify a failed Veo CLI attempt. Moderation is checked FIRST: a moderation * response whose detail happens to also contain a transient- or throttle-looking * phrase (e.g. "network error" / "permission_denied" inside an UNSAFE_GENERATION * envelope) must never be retried — moderation is deterministic for a given * prompt and a retry only burns credits. Throttle is checked before transient so * a reCAPTCHA / 403 / 429 burst takes the long cooldown, not the 2s socket-blip * backoff. Exported for tests; the retry loop is the only runtime caller. */ export declare function classifyVeoFailure(detail: string): 'moderation' | 'throttle' | 'transient' | 'fatal'; /** * Cooldown (ms) before retrying a {@link isThrottleFailure} burst-throttle. * Escalates with the attempt number (attempt×base) and is capped at 180s — long * enough to clear Flow's reCAPTCHA window, which a 2s transient backoff never * does. `VCLAW_VEO_THROTTLE_COOLDOWN_MS` overrides the base (default 75s; set 0 * in tests for an instant retry). */ export declare function veoThrottleCooldownMs(env: NodeJS.ProcessEnv, attempt: number): number; /** * Soften aggressive motion wording that Veo content-moderation rejects, returning * the rewritten prompt and whether anything changed. PURE; exported for tests and * the opt-in safe-motion retry. Retrying is only worthwhile when `changed` is true * — an unchanged prompt would re-trigger the same deterministic reject. */ export declare function softenMotionPrompt(prompt: string): { prompt: string; changed: boolean; }; /** omni-flash R2V accepts up to 7 reference images. */ export declare const VEO_MAX_R2V_REFS = 7; export declare function submitVeoUseApiNative(payload: VideoExecutionPayload, options?: { env?: NodeJS.ProcessEnv; }): Promise<{ externalJobId: string; rawResult: unknown; }>; export declare function pollVeoUseApiNative(input: { outputDir: string; externalJobId: string; }): Promise; //# sourceMappingURL=native-veo.d.ts.map