import type { ReportSchemaPolicy, ReportSchemaV1 } from "./workflow-types.js"; export declare const WORKER_ATTEMPT_STATES: readonly ["pending", "running", "blocked", "ambiguous", "done", "failed", "cancelled"]; export type WorkerAttemptState = (typeof WORKER_ATTEMPT_STATES)[number]; export declare function normalizeWorkerAttemptState(value: unknown): WorkerAttemptState; export interface WorkerGateFacts { readonly evidence: { readonly exists: boolean; }; readonly report: { readonly schemaDeclared: boolean; readonly matches: boolean; readonly policy?: ReportSchemaPolicy; }; readonly acceptanceCheck: { readonly declared: boolean; readonly exitCode: number | null; }; readonly human: { readonly approvalRequired: boolean; readonly approved: boolean; }; readonly budget: { readonly exceeded: boolean; }; readonly runtime: { readonly supervisorLost: boolean; readonly effectsUncertain: boolean; readonly certain?: boolean; }; readonly failure?: { readonly observed: boolean; }; readonly termination?: { readonly observed: boolean; }; readonly wait?: { readonly declared: boolean; }; readonly reconcile: { readonly decisionExists: boolean; readonly uncertaintyCleared?: boolean; }; readonly input: { readonly kind: "revise_contract" | "steer" | "peer_message" | null; readonly correlationMatches: boolean; }; readonly cancel: { readonly verbReceived: boolean; }; } export type WorkerGateGuard = "evidence.exists" | "report.matches(report_schema)" | "acceptance_check.exit == 0" | "human.approved" | "budget.not_exceeded" | "runtime.uncertain" | "runtime.certain" | "failure.observed" | "termination.observed" | "wait.declared" | "reconcile.decision.exists" | "reconcile.uncertainty.cleared" | "input.is_new" | "input.correlation_matches" | "cancel.verb"; export interface WorkerAttemptTransitionRule { readonly from: WorkerAttemptState; readonly to: WorkerAttemptState; readonly guards: readonly WorkerGateGuard[]; } export declare const WORKER_ATTEMPT_LEGALITY_TABLE: readonly WorkerAttemptTransitionRule[]; export type WorkerAttemptTransitionResult = { readonly allowed: true; } | { readonly allowed: false; readonly reason: "undeclared-transition" | "guard-failed"; readonly blockers: readonly WorkerGateGuard[]; }; export declare function evaluateWorkerAttemptTransition(from: WorkerAttemptState, to: WorkerAttemptState, facts: WorkerGateFacts): WorkerAttemptTransitionResult; export declare const TERMINAL_ATTEMPT_PRIORITY: readonly ["ambiguous", "cancelled", "failed", "running"]; export declare function classifyObservedTermination(input: { readonly runtimeCertain: boolean; readonly effectsUncertain: boolean; readonly cancellationRequested: boolean; readonly terminationObserved: boolean; readonly failureObserved: boolean; }): WorkerAttemptState; export declare function reportMatchesSchema(schema: ReportSchemaV1, report: unknown): boolean; //# sourceMappingURL=worker-gate.d.ts.map