/**
 * ConflictFrameLoader — loads and prepares patch frames for conflict analysis.
 *
 * Owns frontier/strand context resolution, patch frame construction,
 * reducer replay for receipt attachment, and scan-window budgeting.
 *
 * @module domain/services/strand/ConflictFrameLoader
 */
import ConflictDiagnostic from '../../types/conflict/ConflictDiagnostic.ts';
import ConflictResolvedCoordinate from '../../types/conflict/ConflictResolvedCoordinate.ts';
import { TickReceipt } from '../../types/TickReceipt.ts';
import type Patch from '../../types/Patch.ts';
import type ConflictAnalysisRequest from './ConflictAnalysisRequest.ts';
import type ConflictPipelineContext from './ConflictPipelineContext.ts';
export declare const CONFLICT_ANALYSIS_VERSION = "conflict-analyzer/v2";
export declare const CONFLICT_TRAVERSAL_ORDER = "lamport_desc_writer_desc_patch_desc";
export declare const CONFLICT_TRUNCATION_POLICY = "scan_budget_max_patches_reverse_causal";
/**
 * A loaded patch with its receipt and causal context.
 *
 * Not frozen — `receipt` is mutated by `attachReceipts` after construction.
 */
export declare class PatchFrame {
    patch: Patch;
    sha: string;
    patchOrder: number;
    context: Map<string, number>;
    receipt: TickReceipt;
    constructor({ patch, sha, patchOrder, context, receipt, }: {
        patch: Patch;
        sha: string;
        patchOrder: number;
        context: Map<string, number>;
        receipt?: TickReceipt;
    });
}
/**
 * Replays all patches through the reducer and attaches the resulting receipts to each frame.
 */
export declare function attachReceipts(patchFrames: PatchFrame[]): void;
/**
 * A scan window over patch frames with reverse-causal ordering and budget truncation.
 */
export declare class ScanWindow {
    readonly reverseCausalFrames: PatchFrame[];
    readonly scannedFrames: PatchFrame[];
    readonly truncated: boolean;
    readonly scannedPatchShas: Set<string>;
    constructor({ patchFrames, maxPatches, lamportCeiling, diagnostics, }: {
        patchFrames: PatchFrame[];
        maxPatches: number | null;
        lamportCeiling: number | null;
        diagnostics: ConflictDiagnostic[];
    });
}
/**
 * The context reaches into the shared strand-coordinator graph runtime
 * for strand-coordinate resolution plus `_loadWriterPatches` for
 * frontier-coordinate enumeration.
 */
type AnalysisContext = {
    patchFrames: PatchFrame[];
    resolvedCoordinate: ConflictResolvedCoordinate;
};
/**
 * Resolves the full analysis context (patch frames + coordinate) from either
 * strand or frontier coordinates.
 */
export declare function resolveAnalysisContext(context: ConflictPipelineContext, request: ConflictAnalysisRequest): Promise<AnalysisContext>;
export {};
