import type { ComponentId, RegisterId } from '@/types';
import { type EdgeDataFields } from '@/utils/hash';
export type TreeFrameParentNode = Partial<{
    [K in keyof EdgeDataFields]: EdgeDataFields[K] | null;
}> & {
    registerId: RegisterId;
    cumSig: string;
};
export type SeqEntry = {
    inUse: number;
    nextSalt: number;
    free: number[];
    claims: Map<symbol, number | null>;
};
export type TreeFrame = {
    parent: TreeFrameParentNode;
    seq: Map<ComponentId, SeqEntry>;
    depth: number;
    dryRunMeta?: {
        parentHit: boolean;
    } | undefined;
};
export declare function createRootTreeFrame(): TreeFrame;
export declare function createTreeFrame(parent: Omit<TreeFrame, 'seq'>, node: TreeFrameParentNode, dryRunMeta?: {
    parentHit: boolean;
}): TreeFrame;
