/**
 * executeGC — compacts a WARP V5 state against an applied version vector.
 *
 * Compacts tombstoned dots that are <= `appliedVV` from both
 * `nodeAlive` and `edgeAlive`. Mutates `state` in place — callers must
 * clone-then-swap to preserve a rollback copy (see CheckpointService
 * for the canonical pattern).
 *
 * @module domain/services/executeGC
 */
import VersionVector from '../crdt/VersionVector.ts';
import type WarpState from './state/WarpState.ts';
import GCExecuteResult from './GCExecuteResult.ts';
/**
 * Executes GC on `state`. Mutates `state` in place.
 *
 * @throws {WarpError} `E_GC_INVALID_VV` if `appliedVV` is not a VersionVector
 * @throws {WarpError} `E_GC_COMPACT_FAILED` if ORSet.compact throws
 */
export default function executeGC(state: WarpState, appliedVV: VersionVector): GCExecuteResult;
