import type { UploadProgress } from "./upload.js"; export interface ProgressSink { update: (p: UploadProgress) => void; /** Clear the redrawn line so the completion lines start clean. */ finish: () => void; } export interface ProgressDeps { isTTY: boolean; /** Raw write for the redraw path (no trailing newline). */ write: (s: string) => void; /** Whole-line print for the degraded path. */ print: (line: string) => void; now: () => number; /** The degraded cadence ceiling. */ minIntervalMs?: number; } export declare function createProgress(deps: ProgressDeps): ProgressSink;