import { type HygieneCommonOptions } from "../shared.js"; export interface AuditSiteResidueOptions extends HygieneCommonOptions { /** * Additional roots to scan on top of the three SXA defaults. Pass * repeatedly or comma-separate. Defaults to the standard SXA * Project folders under templates / layout / media library. */ root?: string[]; /** Override the content root walked when discovering active sites. * Default `/sitecore/content` — same as `scai provision deploy site list`. */ contentRoot?: string; index?: string; concurrency?: number; baseline?: boolean; output?: string; format?: "json" | "csv" | "markdown"; /** * Suppress this audit's own report — the caller owns the printed * output. Used by `explain` verbs that compose this audit with * others (e.g. `explain orphan-site`). */ silent?: boolean; } export type SiteResidueKind = "orphan-tenant" | "orphan-site"; export interface SiteResidueReport { kind: SiteResidueKind; /** Root path under which the residue was found (e.g. `/sitecore/templates/Project`). */ root: string; /** Tenant folder name as it appears in the residue tree. */ tenant: string; /** Site folder name — null for `orphan-tenant`. */ site: string | null; itemId: string; path: string; /** Descendant count from the search index (`_path CONTAINS itemId`). * Useful for prioritising which residue tree to clean up first. */ descendantCount: number; } export declare const runAuditSiteResidue: (options: AuditSiteResidueOptions) => Promise;