import type { WorkflowState } from './workflow-state.js'; export declare const GOVERNANCE_ACTORS: readonly ['model', 'human', 'policy', 'system']; export type GovernanceActor = (typeof GOVERNANCE_ACTORS)[number]; type AuthorizationKind = 'none' | 'automatic' | 'human'; export interface TransitionFacts { readonly contractApproved: boolean; readonly planApproved: boolean; readonly withinAutonomyEnvelope: boolean; readonly authorization: AuthorizationKind; readonly executionGrantValid: boolean; readonly snapshotCurrent: boolean; readonly requiredEvidenceSatisfied: boolean; readonly blockingFindings: number; readonly rollbackVerified: boolean; } export interface TransitionProposal { readonly from: WorkflowState; readonly to: WorkflowState; readonly actor: GovernanceActor; readonly currentRevision: number; readonly expectedRevision: number; /** Trusted facts computed by governance adapters/policy, never copied from model arguments. */ readonly facts: TransitionFacts; } type TransitionRejectionCode = 'stale_revision' | 'illegal_transition' | 'authorization_missing' | 'contract_not_approved' | 'plan_not_approved' | 'outside_autonomy_envelope' | 'execution_grant_missing' | 'stale_snapshot' | 'evidence_missing' | 'blocking_findings' | 'model_cannot_self_admit' | 'rollback_unverified'; type TransitionDecision = { readonly allowed: true; readonly from: WorkflowState; readonly to: WorkflowState; readonly nextRevision: number; } | { readonly allowed: false; readonly code: TransitionRejectionCode; readonly message: string; }; export declare function decideTransition(proposal: TransitionProposal): TransitionDecision; export {}; //# sourceMappingURL=transition-engine.d.ts.map