/**
 * Seedance Video SDK Types
 * Official TypeScript definitions for Seedance AI Video Generation API
 */
/// <reference types="node" />
export interface SeedanceConfig {
    /** Your Seedance API key */
    apiKey: string;
    /** API base URL (optional, defaults to official endpoint) */
    baseURL?: string;
    /** Request timeout in milliseconds (default: 30000) */
    timeout?: number;
    /** Enable debug logging */
    debug?: boolean;
}
export interface VideoGenerationRequest {
    /** Text prompt for video generation */
    prompt: string;
    /** Optional image input for image-to-video generation */
    image?: File | string | Buffer;
    /** Video duration in seconds (default: 5) */
    duration?: number;
    /** Video resolution */
    resolution?: VideoResolution;
    /** Video style/model to use */
    style?: VideoStyle;
    /** Aspect ratio */
    aspectRatio?: AspectRatio;
    /** Frame rate (fps) */
    frameRate?: number;
    /** Additional generation parameters */
    parameters?: GenerationParameters;
}
export interface GenerationParameters {
    /** Motion intensity (0-1) */
    motionIntensity?: number;
    /** Seed for reproducible results */
    seed?: number;
    /** Number of inference steps */
    steps?: number;
    /** Guidance scale */
    guidanceScale?: number;
    /** Enable multi-shot narrative */
    multiShot?: boolean;
}
export type VideoResolution = '480p' | '720p' | '1080p' | '4K';
export type VideoStyle = 'realistic' | 'anime' | 'cartoon' | 'cinematic' | 'artistic';
export type AspectRatio = '16:9' | '9:16' | '1:1' | '4:3' | '3:4';
export interface VideoGenerationResponse {
    /** Unique task ID */
    taskId: string;
    /** Current task status */
    status: TaskStatus;
    /** Progress percentage (0-100) */
    progress: number;
    /** Generated video URL (available when completed) */
    videoUrl?: string;
    /** Thumbnail URL */
    thumbnailUrl?: string;
    /** Error message if failed */
    error?: string;
    /** Estimated completion time */
    estimatedTime?: number;
    /** Creation timestamp */
    createdAt: string;
    /** Last updated timestamp */
    updatedAt: string;
}
export type TaskStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
export interface VideoTask {
    id: string;
    status: TaskStatus;
    progress: number;
    prompt: string;
    videoUrl?: string;
    thumbnailUrl?: string;
    duration: number;
    resolution: VideoResolution;
    style: VideoStyle;
    createdAt: string;
    updatedAt: string;
    error?: string;
}
export interface PaginatedResponse<T> {
    data: T[];
    total: number;
    page: number;
    pageSize: number;
    hasNext: boolean;
    hasPrev: boolean;
}
export interface VideoListOptions {
    page?: number;
    pageSize?: number;
    status?: TaskStatus;
    sortBy?: 'createdAt' | 'updatedAt' | 'progress';
    sortOrder?: 'asc' | 'desc';
}
export interface WebhookConfig {
    url: string;
    events: WebhookEvent[];
    secret?: string;
}
export type WebhookEvent = 'task.created' | 'task.processing' | 'task.completed' | 'task.failed';
export interface WebhookPayload {
    event: WebhookEvent;
    taskId: string;
    task: VideoTask;
    timestamp: string;
}
export interface SeedanceError {
    code: string;
    message: string;
    details?: any;
}
export interface UploadResponse {
    url: string;
    fileId: string;
}
export interface QuotaInfo {
    used: number;
    total: number;
    remaining: number;
    resetDate: string;
}
export interface UserInfo {
    id: string;
    email: string;
    plan: 'free' | 'pro' | 'business' | 'enterprise';
    quota: QuotaInfo;
    createdAt: string;
}
export interface VideoPlayerProps {
    src: string;
    poster?: string;
    controls?: boolean;
    autoplay?: boolean;
    loop?: boolean;
    muted?: boolean;
    className?: string;
    onLoadStart?: () => void;
    onLoadedData?: () => void;
    onError?: (error: Error) => void;
}
export interface VideoGeneratorProps {
    apiKey: string;
    onVideoGenerated?: (video: VideoTask) => void;
    onError?: (error: SeedanceError) => void;
    className?: string;
    showAdvancedOptions?: boolean;
    defaultStyle?: VideoStyle;
    defaultResolution?: VideoResolution;
}
export interface ProgressIndicatorProps {
    progress: number;
    status: TaskStatus;
    estimatedTime?: number;
    className?: string;
    showPercentage?: boolean;
    showStatus?: boolean;
}
//# sourceMappingURL=index.d.ts.map