import { type HeavyBudget } from '@geonosis/gate'; import type { WorkspaceCount } from './counts.js'; import type { MachineLoad } from './timeout.js'; export declare const DEFAULT_REPORT = ".geonosis/gate-report.json"; export declare const TAIL_LINES = 40; export declare const NEVER_RAN = -1; export type GateStep = { id: string; command: string; ok: boolean; exitCode: number; ms: number; tail: string; /** #200: the tail starts at a suite's expected stack, so two lands on 2026-09-02 named no test. */ digest?: string; skipped?: boolean; /** #65: the step declared no `proves`; recorded and printed, never blocking. */ unproven?: boolean; /** Exited 0 saying it ran nothing: a tier of idle steps read PASS for two days over a red main. */ idle?: true; timedOut?: MachineLoad; environment?: string; retried?: { after: string; times: number; }; workspaces?: WorkspaceCount[]; log?: string; }; export type GateReport = { tier: string; startedAt: string; finishedAt: string; ok: boolean; steps: GateStep[]; /** D-042: a ceiling recorded beside the timings, never a verdict. */ budgetMs?: number; /** D-081 */ heavy?: HeavyBudget; commit?: string; inputs?: string[]; affected?: { base: string; reason: 'none' | 'root' | 'workspaces'; workspaces: string[]; }; idle?: string[]; }; export declare const commitAt: (cwd: string) => string | undefined; export declare const lastLines: (output: string, limit?: number) => string; export declare const writeReport: (cwd: string, path: string, report: GateReport) => string;