/** * TTY-aware pretty output. * * Agents always capture stdout (isTTY=false) → they get compact JSON unchanged. * Humans running scoutline in a terminal (isTTY=true) get human-friendly output * by default: colored search results, quota dashboards with progress bars. * * Force either way: --pretty-output (force human format) / --raw (force data). * * Honors NO_COLOR env var (https://no-color.org) — disables all ANSI codes. */ type ColorFn = (s: string) => string; export declare const color: { bold: ColorFn; dim: ColorFn; cyan: ColorFn; green: ColorFn; yellow: ColorFn; red: ColorFn; magenta: ColorFn; gray: ColorFn; }; export declare function isTTY(): boolean; export interface SearchResultLike { rank?: number; title?: string; url?: string; summary?: string; source?: string; date?: string; occurrences?: number; } export declare function formatSearchResultsPretty(results: SearchResultLike[]): string; import type { QuotaDashboard } from "../capabilities/quota.js"; /** * Provider-neutral TTY rendering of a {@link QuotaDashboard}. Each * Provider entry is labelled with its Provider id and each category by * its normalized name; progress bars represent the REMAINING percentage. * * PB-T5: a successful row carries a `quotaSource` label rendered as a * separate `source` line beneath the categories (snapshot/live, fresh/ * stale). The new `"none"` status (no quota Capability — Exa) renders * a single dim line; it never appears as a failure. The `now` argument * defaults to `Date.now()` so existing callers keep working; tests * inject a fixed clock for deterministic age labels. */ export declare function formatQuotaDashboard(dashboard: QuotaDashboard, now?: number): string; import type { DiagnosticsReportWithAvailability } from "../commands/doctor.js"; /** * Provider-neutral TTY rendering of a doctor DiagnosticsReport (T5 — * fixes GitHub #95). Header: the effective Provider, a capabilityMatrix * count summary, and the optional routing/cache summaries — an absent * optional field renders as absent (its line is omitted), never as the * string "undefined". Below the header, every provider row renders IN * THE ORDER THE REPORT CARRIES — the formatter never sorts; the report * builder delivers rows healthy-first (#94) and that order is rendered * verbatim. Each row carries an availability glyph + vocabulary label * (`ok` | `exhausted` | `error` | `unconfigured`), the probe status, * and the optional verification and snapshot source/age labels. * * The `now` argument defaults to `Date.now()` so existing callers keep * working; tests inject a fixed clock for deterministic age labels * (same signature style as {@link formatQuotaDashboard}). */ export declare function formatDiagnosticsReport(report: DiagnosticsReportWithAvailability, now?: number): string; export {}; //# sourceMappingURL=tty.d.ts.map