import { type HygieneCommonOptions } from "../shared.js"; export interface AuditLanguageDataOptions extends HygieneCommonOptions { /** Scope to descendants of this content path. Default `/sitecore/content`. */ root?: string; /** * Languages to inspect for empty entries. Defaults to all languages * found in the search index under `--root`. */ languages?: string[]; /** Override the search index. */ index?: string; /** Cap on items inspected. Default 5000. */ limit?: number; /** Include system items. Off by default. */ includeSystem?: boolean; /** Per-item check concurrency. Default 4. */ concurrency?: number; } export interface LanguageDataReport { itemId: string; path: string; templateName?: string | null; /** Languages where the item exists as a database entry but has zero versions. */ emptyLanguages: string[]; } /** * Report items that have a per-language entry in the master DB but * **zero versions** in that language — the XM Cloud equivalent of the * dotnet `clean-invalid-language-data` diagnostic. * * **No remediation API on XM Cloud.** This command is read-only by * design. The Authoring GraphQL API exposes only two language * mutations: * - `deleteLanguage(input: { database, name })` — removes the * language from the entire tenant. Destructive; not per-item. * - `deleteItemVersion` — removes a single version, but there's no * version-zero entry to delete. * * There is no `deleteItemLanguage(itemId, language)` mutation on XM * Cloud Authoring. So the on-prem `clean-invalid-language-data` shape * (per-item, per-language cleanup) can't be ported. * * What this command does: * 1. Use search to enumerate items under `--root` and gather the set * of languages observed across those items. * 2. For each item, ask the Authoring API for its versions per * candidate language (`getItemVersions({ language })`). Versions * list is empty → that's an empty-language-entry. * * Operators who want to "clean" can either: (a) re-author at least one * version in the affected language, or (b) `deleteLanguage` tenant-wide * if the language is no longer in use. Both are out-of-scope for this * command. */ export declare const runAuditLanguageData: (options: AuditLanguageDataOptions) => Promise;