/**
 * Key encoding/decoding for WARP graph CRDT state maps.
 *
 * Single source of truth for encoding composite keys (edges, properties,
 * edge properties) used as Map keys in WarpState. Uses null character
 * (\0) as field separator and \x01 prefix for edge property keys.
 *
 * @module domain/services/KeyCodec
 */
export { CONTENT_MIME_PROPERTY_KEY, CONTENT_PROPERTY_KEY, CONTENT_SIZE_PROPERTY_KEY, } from '../graph/LegacyContentPropertyKeys.ts';
/** Field separator used in all encoded keys. */
export declare const FIELD_SEPARATOR = "\0";
/**
 * Prefix byte for edge property keys. Guarantees no collision with node
 * property keys (which start with a node-ID character, never \x01).
 */
export declare const EDGE_PROP_PREFIX = "\u0001";
/**
 * Reserved node ID prefix for substrate-internal effect entities.
 * Observers match this prefix to discover effect nodes.
 */
export declare const EFFECT_NODE_PREFIX = "@warp/effect:";
/**
 * Encodes an edge key to a string for Map storage.
 *
 * @param from - Source node ID
 * @param to - Target node ID
 * @param label - Edge label/type
 * @returns Encoded edge key in format "from\0to\0label"
 * @see decodeEdgeKey - The inverse operation
 */
export declare function encodeEdgeKey(from: string, to: string, label: string): string;
/**
 * Decodes an edge key string back to its component parts.
 *
 * @param key - Encoded edge key in format "from\0to\0label"
 * @returns Decoded edge components
 * @see encodeEdgeKey - The inverse operation
 */
export declare function decodeEdgeKey(key: string): {
    from: string;
    to: string;
    label: string;
};
/**
 * Encodes a node property key for Map storage.
 *
 * @param nodeId - The ID of the node owning the property
 * @param propKey - The property name/key
 * @returns Encoded property key in format "nodeId\0propKey"
 * @see decodePropKey - The inverse operation
 */
export declare function encodePropKey(nodeId: string, propKey: string): string;
/**
 * Decodes a node property key string back to its component parts.
 *
 * @param key - Encoded property key in format "nodeId\0propKey"
 * @returns Decoded property components
 * @see encodePropKey - The inverse operation
 */
export declare function decodePropKey(key: string): {
    nodeId: string;
    propKey: string;
};
/**
 * Encodes an edge property key for Map storage.
 *
 * Format: `\x01from\0to\0label\0propKey`
 *
 * The \x01 prefix guarantees collision-freedom with node property keys.
 *
 * @param from - Source node ID
 * @param to - Target node ID
 * @param label - Edge label
 * @param propKey - Property name
 * @returns Encoded edge property key
 */
export declare function encodeEdgePropKey(from: string, to: string, label: string, propKey: string): string;
/**
 * Encodes edge identity as the legacy `node` field value for raw PropSet ops.
 *
 * Format: `\x01from\0to\0label`
 *
 * @param from - Source node ID
 * @param to - Target node ID
 * @param label - Edge label
 * @returns Encoded legacy edge property node
 */
export declare function encodeLegacyEdgePropNode(from: string, to: string, label: string): string;
/**
 * Returns true if a raw PropSet `node` field encodes an edge identity.
 * @param node - The `node` field from a raw PropSet op
 * @returns True if this is a legacy edge property node encoding
 */
export declare function isLegacyEdgePropNode(node: string): boolean;
/**
 * Decodes a legacy edge-property `node` field back to its components.
 * @param node - The `node` field (must start with \x01)
 * @returns Decoded edge components
 * @throws {WarpError} If the node field is not a valid legacy edge-property encoding
 */
export declare function decodeLegacyEdgePropNode(node: string): {
    from: string;
    to: string;
    label: string;
};
/**
 * Returns true if the encoded key is an edge property key.
 * @param key - Encoded property key
 * @returns True if this is an edge property key
 */
export declare function isEdgePropKey(key: string): boolean;
/**
 * Decodes an edge property key string.
 * @param encoded - Encoded edge property key (must start with \x01)
 * @returns Decoded edge property components
 * @throws {WarpError} If the encoded key is missing the edge property prefix
 * @throws {WarpError} If the encoded key does not contain exactly 4 segments
 */
export declare function decodeEdgePropKey(encoded: string): {
    from: string;
    to: string;
    label: string;
    propKey: string;
};
