import { Transaction } from 'neo4j-driver'; import { OGMLogger } from '../execution/executor'; import { SubgraphCloneResult, SubgraphConfig, SubgraphDeleteResult } from './types'; /** * Clones a content subgraph rooted at the given source node using APOC procedures. * * Phase 1: Collects the subgraph via `apoc.path.subgraphAll` and clones it * with `apoc.refactor.cloneSubgraph`. Generates new UUIDs for all cloned nodes * and sets `clonedFromId` on each clone pointing to the original. * * Phase 2: Re-attaches reference relationships from cloned nodes to shared/lookup nodes * (e.g., Language, Status, MeasurementUnit) that were outside the clone scope. * * @param sourceRootId - The `id` property of the root node to clone * @param config - Defines which nodes to clone vs reference * @param transaction - Caller-managed Neo4j transaction * @param logger - Optional logger for debug output * @returns The cloned root node id, a mapping of original→cloned node ids, * and the cloned node ids grouped by label */ export declare function cloneSubgraph(sourceRootId: string, config: SubgraphConfig, transaction: Transaction, logger?: OGMLogger): Promise; /** * Deletes a content subgraph rooted at the given node using APOC procedures. * * Uses `apoc.path.subgraphAll` to collect all owned nodes within the configured * labels and relationships, then `DETACH DELETE`s them. * * @param rootId - The `id` property of the subgraph root node to delete * @param config - Defines which labels/relationships form the owned subgraph * @param transaction - Caller-managed Neo4j transaction * @param logger - Optional logger for debug output * @returns The count of deleted nodes */ export declare function deleteSubgraph(rootId: string, config: SubgraphConfig, transaction: Transaction, logger?: OGMLogger): Promise; //# sourceMappingURL=subgraph-operations.d.ts.map