/**
 * Per-step progress + timing for the analyzer pipeline (F-UX-2).
 *
 * Pre-2.4.7, `timed` / `timedAsync` only emitted output under
 * `--verbose` — and only AFTER the step completed. Real users
 * running `health` on a 1.8GB-node_modules repo (Friction #20) sat
 * for tens of minutes staring at a static banner with no indication
 * whether dxkit was working or hung.
 *
 * Post-F-UX-2, the start of every step always prints a `→ <name>`
 * line to stderr — including in non-verbose mode — so the user can
 * see exactly which step is running. The elapsed time still only
 * prints under `--verbose`. Stdout stays clean so `--json` is
 * unaffected.
 *
 * Scope note: this is the per-top-level-step minimal version from
 * the friction tracker. Fuller streaming inside long capabilities
 * (e.g. semgrep across 8 rulesets, OSV.dev lookups across N
 * advisories) can land in 2.4.8.
 */
export declare function timed<T>(name: string, verbose: boolean, fn: () => T): T;
export declare function timedAsync<T>(name: string, verbose: boolean, fn: () => Promise<T>): Promise<T>;
//# sourceMappingURL=timing.d.ts.map