/**
 * Config Diff Module
 *
 * Compares configuration snapshots to detect changes and
 * determine which subsystems need to be reloaded.
 */
import type { ConfigChange, ConfigSnapshot, SubsystemId } from './types.js';
/**
 * Create a hash of config data for quick comparison
 */
export declare function hashConfig(data: Record<string, unknown>): string;
/**
 * Create a config snapshot from data
 */
export declare function createSnapshot(data: Record<string, unknown>): ConfigSnapshot;
/**
 * Check if two snapshots are equal (quick hash comparison)
 */
export declare function snapshotsEqual(a: ConfigSnapshot, b: ConfigSnapshot): boolean;
/**
 * Get the subsystem for a config path
 */
export declare function getSubsystemForPath(path: string): SubsystemId | null;
/**
 * Find all changes between two config snapshots
 */
export declare function diffConfigs(oldSnapshot: ConfigSnapshot, newSnapshot: ConfigSnapshot): ConfigChange[];
/**
 * Group changes by subsystem
 */
export declare function groupChangesBySubsystem(changes: ConfigChange[]): Map<SubsystemId, ConfigChange[]>;
/**
 * Get affected subsystems from changes
 */
export declare function getAffectedSubsystems(changes: ConfigChange[]): SubsystemId[];
/**
 * Merge multiple changes to the same path
 */
export declare function mergeChanges(changes: ConfigChange[]): ConfigChange[];
/**
 * Create a patch object from changes
 */
export declare function createPatch(changes: ConfigChange[]): Record<string, unknown>;
/**
 * Create a rollback patch from changes (reverses the changes)
 */
export declare function createRollbackPatch(changes: ConfigChange[]): Record<string, unknown>;
