import { type HygieneCommonOptions } from "../shared.js"; export interface CleanupVersionsArchiveOptions extends HygieneCommonOptions { /** Required. Number of most-recent versions to keep per (item, language). */ keep: number; /** Required scope. */ root: string; /** Restrict to one language. */ language?: string; /** Cap on items inspected. Default 5000. */ limit?: number; /** Override the search index. */ index?: string; /** Concurrency. Default 4. */ concurrency?: number; includeSystem?: boolean; whatIf?: boolean; allowWrite?: boolean; /** * Permit operating against `/sitecore/system` / `/sitecore/templates` * subtrees. Off by default. */ force?: boolean; /** * Name of the archive bucket. Default unset (Sitecore's default * archive). Useful for separating CLI-driven archive activity from * UI-driven activity. */ archiveName?: string; } export interface VersionArchiveAction { itemId: string; path: string; language: string; versionsBefore: number; versionsAfter: number; archivedVersions: number[]; errors: string[]; } /** * Soft alternative to `cleanup versions prune`. Instead of deleting * older versions, move them to the Sitecore archive via `archiveVersion`. * * Same safety rails as `prune`: * - `--root` required. * - `--keep` must be >= 1. * - Protected roots refused without `--force`. * - `--allow-write` enforced outside `--what-if`. * * Difference from `prune`: * - The mutation is `archiveVersion` instead of `deleteItemVersion`. * Archived versions can be restored via `restoreArchivedVersion` * (Sitecore admin UI) — reversible. Pruned versions are gone for * good. * - Returns `archiveVersionId` per archived version, surfaced in the * report so operators can restore individual versions later. */ export declare const runCleanupVersionsArchive: (options: CleanupVersionsArchiveOptions) => Promise;