import type { CatalogId } from "@x12i/catalox-contracts/ids.js"; import { type BackupDataDeps } from "./backup-data.js"; export type NativeCatalogLayoutDiagnosticRow = { catalogId: string; /** Documents under `catalogData/{catalogId}/items` (legacy). */ legacyItemCount: number; /** Documents under top-level `catalogData-{catalogId}-items` (flat). */ flatItemCount: number; /** What `NativeItemStore` / backup would use today. */ resolverLayout: "flat" | "legacy"; /** True when legacy still holds rows; flat migration (or delete-legacy) is what removes this from being authoritative. */ legacyHasRows: boolean; /** True when legacy has rows and flat is empty — run `migrateNativeCatalogLayout` to create flat rows. */ needsLegacyToFlatMigration: boolean; }; /** * Inspect native storage paths for every discovered catalog (same discovery rules as backup/migrate). * Use this when the Firebase console still shows **`catalogData/{catalogId}/items`** (legacy) and you expect **`catalogData-{catalogId}-items`** at the root. */ export declare function reportNativeCatalogLayoutDiagnostics(deps: BackupDataDeps, opts?: { catalogIds?: CatalogId[]; appId?: string; }): Promise; /** Human-readable live paths for one catalog (for CLI / operators). */ export declare function nativeCatalogFirestorePaths(catalogId: string): { legacyItemsPath: string; flatItemsCollectionId: string; }; //# sourceMappingURL=native-catalog-layout-diagnostics.d.ts.map