import { type RunRow } from "./rows.js"; import type { Source } from "./sources.js"; export type LoaderProgress = { kind: "progress"; phase: "summary"; completed: number; total: number; }; export type LoaderEvent = LoaderProgress /** `row` is a snapshot of the loader's live row. */ | { kind: "upsert"; row: RunRow; } | { kind: "done"; rows: RunRow[]; }; export type RunsLoader = { /** Perform one bounded unit of work; returns the events it caused. */ advance(): LoaderEvent[]; isDone(): boolean; }; export declare function createRunsLoader(sources: Source[]): RunsLoader; /** Drain a loader synchronously. The only completion path CSV export * uses, so interactive and CSV derivation cannot drift. */ export declare function loadAllRuns(sources: Source[]): RunRow[];