import type { Session } from "neo4j-driver";
export interface CascadeResult {
    sections: number;
    chunks: number;
    references: number;
}
/**
 * Delete all children (Section, Chunk) and REFERENCES edges of a
 * KnowledgeDocument identified by attachmentId. The document node
 * itself is NOT deleted — caller decides whether to keep or remove it.
 *
 * Returns counts of deleted nodes/edges for observability.
 */
export declare function deleteDocumentChildren(attachmentId: string, session: Session): Promise<CascadeResult>;
/**
 * Set deletedAt on a KnowledgeDocument and all its children (Section, Chunk).
 * Used for soft delete — nodes remain in the graph but are excluded from search.
 *
 * Returns counts of marked nodes for observability.
 */
export declare function softDeleteDocument(attachmentId: string, deletedAt: string, session: Session): Promise<{
    document: number;
    sections: number;
    chunks: number;
}>;
/**
 * Hard-delete a KnowledgeDocument node itself (after children have been removed
 * via deleteDocumentChildren).
 */
export declare function deleteDocumentNode(attachmentId: string, session: Session): Promise<boolean>;
//# sourceMappingURL=document-hierarchy.d.ts.map