import { type VendorModelPremiumRequiredPayload } from '../../media/index.js'; export declare const SEEDANCE_INPUT_IMAGE_PRIVACY_POLICY_CODE = "InputImageSensitiveContentDetected.PrivacyInformation"; export declare const SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE = "No problem \u2014 Seedance just has a content rule that keeps it from animating photos of real people directly, but we've got a couple of great ways to bring this to life! I can give the people a fun, clearly non-photographic makeover \u2014 anime, cartoon, claymation, LEGO, or bobblehead, or simply hide the faces \u2014 and then run Seedance on that. Or, if you'd like to keep the original look, I can switch to LTX 2.3, which animates your photo directly (it just won't use Seedance). Which sounds best \u2014 a stylized spin, or LTX 2.3?"; export interface SeedanceStylizeRecoveryOption { id: 'anime' | 'cartoon' | 'lego' | 'bobblehead' | 'claymation' | 'hide_faces'; label: string; editInstruction: string; } export declare const SEEDANCE_STYLIZE_RECOVERY_OPTIONS: readonly SeedanceStylizeRecoveryOption[]; export interface SeedanceStylizeRecovery { kind: 'stylize_source_then_resubmit'; options: readonly SeedanceStylizeRecoveryOption[]; resubmitToolName: 'generate_video'; } export declare const SEEDANCE_STYLIZE_RECOVERY: SeedanceStylizeRecovery; export declare const SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE = "Seedance's content check didn't pass this one, so no video came back this time. We can adjust the prompt or try a different look and give it another go."; export declare const SEEDANCE_VENDOR_GENERATION_FAILED_MESSAGE = "Seedance hit a snag partway through this one, so no media was generated. The provider did not return a specific reason \u2014 a quick retry usually clears it up. If it happens again, you can report the issue right from this message."; export declare const SEEDANCE_VENDOR_TIMEOUT_MESSAGE = "Seedance took a bit too long on this one and timed out, so no media was generated. A quick retry usually does the trick; if it times out again, you can report the issue right from this message."; export declare const SEEDANCE_REFERENCE_AUDIO_TOO_LONG_MESSAGE = "That reference audio is a little longer than this Seedance mode allows. Trim it to the mode's limit (or pick a shorter clip) and we'll give it another go."; export interface SeedanceTerminalPolicyPayload { error: 'seedance_input_image_privacy_policy' | 'seedance_content_policy'; message: typeof SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE | typeof SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE; retryPolicy: 'manual_user_confirmation'; nextAction: 'wait_for_user'; vendorCode?: 5061; vendorErrorCode: typeof SEEDANCE_INPUT_IMAGE_PRIVACY_POLICY_CODE | string; recovery?: SeedanceStylizeRecovery; } export interface SeedanceTerminalGenerationFailurePayload { error: 'seedance_generation_failed' | 'seedance_reference_audio_too_long'; message: string; retryPolicy: 'manual_user_confirmation'; nextAction: 'wait_for_user'; reportIssue?: true; reportIssueReason?: string; vendorError?: string; vendorErrorCode?: string; maxAudioDurationSeconds?: number; } export declare class SeedanceTerminalPolicyError extends Error { readonly payload: SeedanceTerminalPolicyPayload; constructor(payload: SeedanceTerminalPolicyPayload); } export declare function seedanceTerminalPolicyPayloadFromError(error: unknown): SeedanceTerminalPolicyPayload | null; export declare function seedanceTerminalPolicyErrorFromError(error: unknown): SeedanceTerminalPolicyError | null; export declare function seedanceTerminalGenerationFailurePayloadFromError(error: unknown): SeedanceTerminalGenerationFailurePayload | VendorModelPremiumRequiredPayload | null; //# sourceMappingURL=seedancePolicyErrors.d.ts.map