import type { GateState, GateStatus } from "./agent/gate-store.js";
import type { ActiveVerification } from "./agent/verification-harness.js";
import type { Workflow } from "./agent/workflow-store.js";
export type GateEffectiveStatus = GateStatus | "running";
export interface GateStatusSummaryGate {
    gateId: string;
    name?: string;
    status: GateStatus;
    effectiveStatus: GateEffectiveStatus;
    running: boolean;
    awaitingSignoffCount: number;
    dependsOn: string[];
    signalCount: number;
    updatedAt?: number;
    failedSteps?: string[];
}
export interface GateStatusSummary {
    passed: number;
    total: number;
    verifying: boolean;
    verifyingCount: number;
    awaitingSignoffCount: number;
    awaitingHumanSignoff: boolean;
    runningGateIds: string[];
    gates: GateStatusSummaryGate[];
}
interface GateStatusSummaryInput {
    workflow?: Pick<Workflow, "gates">;
    gates: GateState[];
    activeVerifications: ActiveVerification[];
}
/**
 * Build the authoritative gate progress summary from server truth.
 *
 * Stored gate state owns pass/fail/pending. ActiveVerification owns in-flight
 * and awaiting-human state, which may not be present on `/gates?view=summary`
 * rows if clients try to infer it from slim signal payloads.
 */
export declare function buildGateStatusSummary(input: GateStatusSummaryInput): GateStatusSummary;
export {};
//# sourceMappingURL=gate-status-summary.d.ts.map