/**
 * FirstDivergenceView — aligns two trajectories by step index, reports
 * the first step where they differ.
 *
 * "Differ" is configurable — default is (kind, toolName if tool, model
 * if llm). Use this view to attribute "why is variant B better?" to a
 * specific step rather than an aggregate mean delta.
 */
import type { TraceStore } from '../trace/store';
import { type TrajectoryStep } from '../trajectory';
export interface DivergenceReport {
    runA: string;
    runB: string;
    firstDivergenceIndex: number | null;
    aStep?: TrajectoryStep;
    bStep?: TrajectoryStep;
    reason?: string;
    /** Common prefix length (steps that matched). */
    commonPrefixLen: number;
}
export interface DivergenceOptions {
    /** Returns true if two steps are considered equal. Default: kind + tool/model match. */
    stepEquals?: (a: TrajectoryStep, b: TrajectoryStep) => boolean;
}
export declare function firstDivergenceView(store: TraceStore, runA: string, runB: string, options?: DivergenceOptions): Promise<DivergenceReport>;
//# sourceMappingURL=first-divergence.d.ts.map