/** Event types recorded in the transition log. */
export type TransitionEventType = 'transitioned_to_terminal' | 'frontmatter_resealed' | 'reopen' | 'terminal_drift_detected' | 'transition' | 'handoff.intake' | 'handoff.spec.lock' | 'handoff.review_feedback' | 'handoff.implementation-report' | 'handoff.validation-report' | 'retro_audit' | 'tdd_red_locked' | 'tdd_green_achieved' | 'status_reconciled' | 'housekeeping';
/** SPEC-734: Outcome of a gate execution in a transition. */
export type GateOutcome = 'pass' | 'fail' | 'skip' | 'forced';
/** SPEC-734: Result of verifying the hash chain integrity of a project's transition log. */
export interface VerifyChainResult {
    valid: boolean;
    totalEntries: number;
    brokenAt: number | null;
}
/** SPEC-734: A single hash-chained entry in the transition log JSONL file. */
export interface TransitionLogEntry {
    /** Unique identifier for this entry (UUID). */
    id: string;
    /** ISO-8601 timestamp. */
    timestamp: string;
    /** Project identifier (hashProjectPath result). */
    projectId: string;
    /** Spec identifier (e.g. SPEC-001). */
    specId: string;
    /** Classification of what happened. */
    eventType: TransitionEventType;
    /** SHA-256 of the frozen frontmatter fields at the time of this event. */
    frontmatterSha?: string;
    /** Previous status (for transition events). */
    from?: string;
    /** New status (for transition events). */
    to?: string;
    /** Who performed the action (agent/user identifier). */
    actor?: string;
    /** Optional reason (for reseal events, arbitrator-decision, user-override, etc.). */
    reason?: string;
    /** SPEC-734: Session identifier for the MCP/CLI session that triggered this event. */
    sessionId?: string;
    /** SPEC-734: LLM model identifier that was active when the event was triggered. */
    modelId?: string;
    /** SPEC-734: Gate results recorded at transition time (dod, validate, qa, security, compliance, etc.). */
    gateResults?: Record<string, GateOutcome>;
    /** Optional metadata attached to the event (e.g. arbitratorDecisionPath, userReason). */
    meta?: {
        arbitratorDecisionPath?: string;
        userReason?: string;
        rolledBack?: boolean;
        failedStep?: string;
        [key: string]: unknown;
    };
    /** SHA-256 of the previous entry (empty string for first entry). */
    prevSha: string;
    /** SHA-256 of this entry's canonical JSON (excluding this field). */
    sha: string;
}
/** Input for appending a transition event. */
export interface AppendTransitionEventInput {
    projectId: string;
    specId: string;
    eventType: TransitionEventType;
    frontmatterSha?: string;
    from?: string;
    to?: string;
    actor?: string;
    reason?: string;
    /** SPEC-734: Session identifier (e.g. MCP session UUID). */
    sessionId?: string;
    /** SPEC-734: Active LLM model identifier (e.g. 'claude-sonnet-4-6'). */
    modelId?: string;
    /** SPEC-734: Gate outcomes at transition time. */
    gateResults?: Record<string, GateOutcome>;
    /** Optional metadata attached to the event (e.g. arbitratorDecisionPath, userReason). */
    meta?: {
        arbitratorDecisionPath?: string;
        userReason?: string;
        rolledBack?: boolean;
        failedStep?: string;
        [key: string]: unknown;
    };
}
//# sourceMappingURL=transition-log.d.ts.map