import type { TaskProfile } from '../akinator/types.js'; import type { Coverage, JsonValue, LedgerEventType } from './types.js'; export type IntakeStatus = 'ready' | 'exhausted'; export type ProjectionCoverage = 'complete' | 'partial'; export type EvidenceState = 'none' | 'failed' | 'fresh' | 'stale'; export type MissingProfileField = 'taskType' | 'target' | 'expected'; export interface LedgerEventSnapshot { eventId: string; sequence: number; eventType: LedgerEventType; outcome?: string | null; payload?: JsonValue; } export interface LedgerProjectionInput { initialProfile: TaskProfile; intakeStatus: IntakeStatus; coverage: Coverage; throughSequence: number; events: LedgerEventSnapshot[]; } export interface LedgerProjection { throughSequence: number; taskProfile: TaskProfile; profileHash: string; evidenceState: EvidenceState; unresolvedFailureEventIds: string[]; unknownOutcomeEventIds: string[]; latestMutationSequence: number | null; latestMutationEventIds: string[]; latestPassingVerificationSequence: number | null; latestPassingVerificationEventIds: string[]; coverage: ProjectionCoverage; declaredCoverage: Coverage; intakeIncomplete: boolean; missingProfileFields: MissingProfileField[]; } export declare function projectLedger(input: unknown): LedgerProjection; //# sourceMappingURL=projection.d.ts.map