import type StateSession from "../../orset/session/StateSession.ts";
import type { PatchDiff } from "../../types/PatchDiff.ts";
import type { TickReceipt } from "../../types/TickReceipt.ts";
import WarpStateClass from "../state/WarpState.ts";
import type { PatchLike } from "../JoinReducer.ts";
import { type MaterializeAdjacency } from "./MaterializeHelpers.ts";
export type MaterializeSessionOpen = {
    readonly nodeAliveRootOid: string | null;
    readonly edgeAliveRootOid: string | null;
};
export type MaterializeSessionOpener = (init: MaterializeSessionOpen) => Promise<StateSession>;
export declare function reduceSessionBackedState(args: {
    readonly openStateSession: MaterializeSessionOpener;
    readonly patches: ReadonlyArray<{
        readonly patch: PatchLike;
        readonly sha: string;
    }>;
    readonly baseState?: WarpStateClass;
    readonly receipts: boolean;
    readonly wantDiff: boolean;
}): Promise<{
    readonly state: WarpStateClass;
    readonly adjacency: MaterializeAdjacency;
    readonly receipts?: TickReceipt[];
    readonly diff?: PatchDiff;
}>;
