import type { VeniceClient } from './client.js'; export declare const TOPAZ_VIDEO_UPSCALE_MODEL = "topaz-video-upscale"; /** * Max size of a single chunk file sent as base64 `video_url`. * The Venice gateway 413s somewhere above ~50MB of raw video (~67MB base64); * 20MB chunks (~27MB base64) queue reliably with headroom. */ export declare const MAX_CHUNK_BYTES: number; /** Default segment length. At typical harness bitrates (~16Mbps 1080p-class), * 10s segments stay well under MAX_CHUNK_BYTES. */ export declare const DEFAULT_SEGMENT_SECONDS = 10; export interface UpscaleVideoOptions { /** Input video path (mp4/mov). */ inputPath: string; /** Output path for the final upscaled file. */ outputPath: string; /** 2 or 4. Same price either way -- default 4. */ factor?: 2 | 4; /** Segment length in seconds for chunking. Default 10. */ segmentSeconds?: number; /** Parallel upscale jobs. Default 3. */ concurrency?: number; /** Working directory for chunks (default: /.upscale-work). Removed on success. */ workDir?: string; /** Keep the work dir for debugging. */ keepWorkDir?: boolean; onProgress?: (message: string) => void; } export interface UpscaleVideoResult { path: string; sizeBytes: number; chunks: number; inputSeconds: number; width: number; height: number; } /** * Upscale a single chunk that already fits the payload budget. * Sends the raw /video/queue body directly: upscale models use * `upscale_factor` (not `resolution`) and require the real duration * in seconds as a string. */ export declare function upscaleChunk(client: VeniceClient, chunkPath: string, outPath: string, factor: 2 | 4, onProgress?: (message: string) => void): Promise; /** * Upscale a full video of any size: * split (stream copy) -> upscale chunks (parallel) -> concat (stream copy) * -> remux original audio. */ export declare function upscaleVideo(client: VeniceClient, options: UpscaleVideoOptions): Promise; /** * Rough cost estimate without a quote round-trip: ~$0.12 per input second * (same for 2x and 4x), measured live 2026-07-30 on 2520x1080 input. */ export declare function estimateUpscaleCostUsd(inputSeconds: number): number; //# sourceMappingURL=upscale.d.ts.map