/** * Per-field-type pruners for `cleanup subtree --orphan-external-refs prune`. * * Each pruner inspects the field value, decides whether it can handle * the shape, and returns the pruned value with target references * surgically removed (preserving sibling entries). Returning `null` * means "this isn't my shape" — caller tries the next pruner. * * Order of attempts in the caller is renderings-XML first (most * specific) then multi-list (catches pipe-separated GUID lists). If * none match, the field is a single-value reference and we fall back * to clearing it entirely. */ /** * Remove every target id from a pipe-separated GUID list, preserving * the formatting (curly-uppercase vs bare-lowercase) of the surviving * entries. Returns the pruned list or `null` if the value isn't a * multi-list. */ export declare const pruneMultiList: (value: string, targetIds: ReadonlySet) => string | null; /** * Remove every `` element whose `id`/`s:id` (rendering item) * or `ds`/`s:ds` (datasource item) attribute references a target id. * Other renderings stay in their original placeholder; the outer * `......` wrapper is preserved even when every inner * rendering is removed (callers can post-process empty layouts if * needed). * * Pattern-based parser: each inner rendering is a self-closing `` element. The outer wrapper `) => string | null; /** * Try every pruner in priority order; return the first successful * prune. Falls through to `null` when no pruner matches — the caller * should treat that as "single-value field; clearing is the prune." */ export declare const pruneFieldValue: (value: string, targetIds: ReadonlySet) => string | null;