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