/**
 * Key encoding, comparators, collectors, and summarizer for visible-state diffing.
 *
 * Pure functions — no side effects, no I/O, no classes.
 *
 * @module domain/services/comparison/diffKeys
 */
import type { VisibleStateNeighbor } from '../../types/VisibleStateNeighbor.ts';
import type { VisibleStateReader } from '../../types/VisibleStateReader.ts';
/**
 * Compares two strings lexicographically, returning -1, 0, or 1.
 */
export declare function compareStrings(a: string, b: string): number;
/**
 * Produces a canonical string representation of a value for equality comparison.
 */
export declare function valueKey(value: unknown): string;
/**
 * Encodes an edge reference as a null-delimited composite key.
 */
export declare function edgeKey(edge: {
    from: string;
    to: string;
    label: string;
}): string;
/**
 * Encodes an edge property reference as a null-delimited composite key.
 */
export declare function edgePropKey(prop: {
    from: string;
    to: string;
    label: string;
    key: string;
}): string;
/**
 * Encodes a node property reference as a null-delimited composite key.
 */
export declare function nodePropKey(prop: {
    node: string;
    key: string;
}): string;
/**
 * Encodes a neighbor reference as a null-delimited composite key.
 */
export declare function neighborKey(neighbor: VisibleStateNeighbor): string;
/**
 * Compares two edge references by their composite keys.
 */
export declare function compareEdgeRefs(a: {
    from: string;
    to: string;
    label: string;
}, b: {
    from: string;
    to: string;
    label: string;
}): number;
/**
 * Compares two node property references by their composite keys.
 */
export declare function compareNodePropRefs(a: {
    node: string;
    key: string;
}, b: {
    node: string;
    key: string;
}): number;
/**
 * Compares two edge property references by their composite keys.
 */
export declare function compareEdgePropRefs(a: {
    from: string;
    to: string;
    label: string;
    key: string;
}, b: {
    from: string;
    to: string;
    label: string;
    key: string;
}): number;
/**
 * Compares two neighbor references by their composite keys.
 */
export declare function compareNeighbors(a: VisibleStateNeighbor, b: VisibleStateNeighbor): number;
/**
 * Produces a summary of node/edge/property counts from a state reader.
 */
export declare function summarizeReader(reader: VisibleStateReader): {
    nodeCount: number;
    edgeCount: number;
    nodePropertyCount: number;
    edgePropertyCount: number;
};
/**
 * Collects all node properties from a reader into a keyed map.
 */
export declare function collectNodeProperties(reader: VisibleStateReader): Map<string, {
    node: string;
    key: string;
    value: unknown;
}>;
/**
 * Collects all edge properties from a reader into a keyed map.
 */
export declare function collectEdgeProperties(reader: VisibleStateReader): Map<string, {
    from: string;
    to: string;
    label: string;
    key: string;
    value: unknown;
}>;
/**
 * Collects all edges from a reader into a keyed map of edge references.
 */
export declare function collectEdges(reader: VisibleStateReader): Map<string, {
    from: string;
    to: string;
    label: string;
}>;
