/**
 * transferShape — shape delta computation, property collectors, and sync/content aggregators.
 *
 * @module domain/services/transfer/transferShape
 */
import type { VisibleStateTransferOperation } from '../../types/CoordinateComparison.ts';
import { type ContentMeta, type EdgeRef, type VisibleStateReader } from './transferKeys.ts';
import { summarizeOps } from './transferOps.ts';
export { summarizeOps };
export type NodeShapeDelta = {
    addedNodeOps: VisibleStateTransferOperation[];
    removedNodeOps: VisibleStateTransferOperation[];
    propertyNodeIds: string[];
};
/**
 * Compute added, removed, and surviving node sets.
 */
export declare function collectNodeShapeDelta(sourceNodeIds: string[], targetNodeIds: string[]): NodeShapeDelta;
/**
 * Build add-edge transfer operations from a list of edge refs.
 */
export declare function buildAddEdgeOps(edgeRefs: EdgeRef[]): VisibleStateTransferOperation[];
/**
 * Build remove-edge transfer operations from target-only edge keys.
 */
export declare function buildRemoveEdgeOps(removedKeys: string[], targetEdgesByKey: Map<string, EdgeRef>): VisibleStateTransferOperation[];
export type EdgeShapeDelta = {
    addedEdgeOps: VisibleStateTransferOperation[];
    removedEdgeOps: VisibleStateTransferOperation[];
    edgeRefs: EdgeRef[];
};
/**
 * Compute added, removed, and surviving edge sets.
 */
export declare function collectEdgeShapeDelta(sourceReader: VisibleStateReader, targetReader: VisibleStateReader): EdgeShapeDelta;
/**
 * Collect property-diff ops for all nodes present in the source.
 */
export declare function collectNodePropertyOps(sourceReader: VisibleStateReader, targetReader: VisibleStateReader, nodeIds: string[]): VisibleStateTransferOperation[];
/**
 * Collect property-diff ops for all edges present in the source.
 */
export declare function collectEdgePropertyOps(sourceReader: VisibleStateReader, targetReader: VisibleStateReader, edgeRefs: EdgeRef[]): VisibleStateTransferOperation[];
export type SyncPropertyOpsParams = {
    sourceReader: VisibleStateReader;
    targetReader: VisibleStateReader;
    nodeShape: NodeShapeDelta;
    edgeShape: EdgeShapeDelta;
};
/**
 * Collect synchronous property diff ops for nodes and edges.
 */
export declare function collectSyncPropertyOps(params: SyncPropertyOpsParams): {
    nodePropertyOps: VisibleStateTransferOperation[];
    edgePropertyOps: VisibleStateTransferOperation[];
};
export type AllContentOpsParams = {
    sourceReader: VisibleStateReader;
    targetReader: VisibleStateReader;
    nodeShape: NodeShapeDelta;
    edgeShape: EdgeShapeDelta;
    loaders: {
        loadNodeContent: (nodeId: string, meta: ContentMeta) => Promise<Uint8Array>;
        loadEdgeContent: (edge: EdgeRef, meta: ContentMeta) => Promise<Uint8Array>;
    };
};
/**
 * Collect async content attach/clear ops for all nodes and edges.
 */
export declare function collectAllContentOps(params: AllContentOpsParams): Promise<{
    nodeContentOps: VisibleStateTransferOperation[];
    edgeContentOps: VisibleStateTransferOperation[];
}>;
