import type { GateSignal } from "./agent/gate-store.js";
import type { ActiveVerification } from "./agent/verification-harness.js";
import { type TextSelectionMetadata, type TextSelectionOptions } from "./utils/text-selection.js";
export type GateVerificationSnapshotStatus = "passed" | "failed" | "skipped" | "running" | "waiting" | "blocked";
export interface GateVerificationSnapshotStep {
    name: string;
    type: string;
    status: GateVerificationSnapshotStatus;
    passed?: boolean | null;
    skipped?: boolean;
    duration_ms?: number;
    output?: string;
    selection?: TextSelectionMetadata;
    phase?: number;
    sessionId?: string;
    session?: {
        id: string;
        href: string;
    };
    liveLogs?: {
        stdout: boolean;
        stderr: boolean;
    };
}
export interface GateVerificationSnapshot {
    status?: GateSignal["verification"]["status"] | ActiveVerification["overallStatus"];
    steps: GateVerificationSnapshotStep[];
    counts: Record<GateVerificationSnapshotStatus, number>;
    summary: string;
    selection: TextSelectionMetadata & {
        truncationReason?: string;
    };
    active: boolean;
}
interface GateInspectOutputStep {
    output?: string;
    selection?: TextSelectionMetadata;
}
export declare function enforceGateVerificationAggregateOutputBudget(steps: GateInspectOutputStep[]): {
    truncated: boolean;
    truncationReason?: string;
};
export declare function gateVerificationDefaultSelection(options?: TextSelectionOptions): TextSelectionOptions;
export declare function buildGateVerificationSnapshot(input: {
    goalId: string;
    gateId: string;
    signalId: string;
    verification?: GateSignal["verification"];
    activeVerification?: ActiveVerification;
    selectionOptions?: TextSelectionOptions;
    now?: number;
}): GateVerificationSnapshot;
export {};
//# sourceMappingURL=gate-verification-snapshot.d.ts.map