import { a as RunSplitTag } from './run-record-CP2ObebC.js';

interface RuntimeTrajectoryHookEvent {
    id: string;
    runId: string;
    scenarioId?: string;
    target: string;
    phase: string;
    timestamp: number;
    stepIndex?: number;
    parentId?: string;
    payload?: unknown;
    metadata?: Record<string, unknown>;
}
interface RuntimeTrajectoryRecord {
    id?: string;
    scenarioId?: string;
    splitTag?: RunSplitTag;
    runtimeEvents?: unknown;
    [key: string]: unknown;
}
interface RuntimeTrajectoryRunRecord {
    runId: string;
    scenarioId?: string;
    splitTag: RunSplitTag;
}
interface RuntimeTrajectoryEvidenceSummary {
    recordCount: number;
    recordWithRuntimeEventsCount: number;
    runtimeRunCount: number;
    lifecycleEventCount: number;
    defaultedSplitCount: number;
}
interface RuntimeTrajectoryEvidenceProjection {
    runs: RuntimeTrajectoryRunRecord[];
    events: RuntimeTrajectoryHookEvent[];
    summary: RuntimeTrajectoryEvidenceSummary;
    diagnostics: string[];
}
interface ProjectRuntimeTrajectoryEvidenceOptions<TRecord extends RuntimeTrajectoryRecord = RuntimeTrajectoryRecord> {
    records: TRecord[];
    defaultSplitTag?: RunSplitTag;
    recordIdOf?: (record: TRecord, index: number) => string | undefined;
    scenarioIdOf?: (record: TRecord, index: number) => string | undefined;
}
declare function projectRuntimeTrajectoryEvidence<TRecord extends RuntimeTrajectoryRecord>(options: ProjectRuntimeTrajectoryEvidenceOptions<TRecord>): RuntimeTrajectoryEvidenceProjection;
declare function parseRuntimeTrajectoryHookEvent(input: unknown): RuntimeTrajectoryHookEvent | null;

export { type ProjectRuntimeTrajectoryEvidenceOptions as P, type RuntimeTrajectoryRecord as R, type RuntimeTrajectoryEvidenceProjection as a, type RuntimeTrajectoryEvidenceSummary as b, type RuntimeTrajectoryHookEvent as c, type RuntimeTrajectoryRunRecord as d, projectRuntimeTrajectoryEvidence as e, parseRuntimeTrajectoryHookEvent as p };
