import { type Firestore } from "firebase-admin/firestore"; import type { MongoStore } from "../mongo/mongo-store.js"; export type FirestoreMongoTransferIssue = { code: string; message: string; detail?: Record; }; export type CopyFirestoreCollectionToMongoInput = { firestore: Firestore; mongo: MongoStore; /** Firestore collection path (e.g. `apps` or `catalogSnapshots/myId/items`). */ collectionPath: string; /** Drop the destination Mongo collection before writing. */ replaceDestinationCollection?: boolean; dryRun?: boolean; }; export type CopyFirestoreCollectionToMongoResult = { ok: boolean; firestorePath: string; mongoCollection: string; documentCount: number; documentsWritten: number; issues: FirestoreMongoTransferIssue[]; }; export type CopyAllFirestoreCollectionsToMongoInput = { firestore: Firestore; mongo: MongoStore; /** * When true (default), walk every document subcollection so nested paths * (e.g. `catalogSnapshots/{id}/items`) are included for a full exact copy. */ recursive?: boolean; /** Drop each destination Mongo collection before writing. */ replaceDestinationCollections?: boolean; dryRun?: boolean; /** Continue copying remaining collections after a per-collection failure. */ continueOnError?: boolean; /** * Skip collection paths that start with any of these prefixes * (e.g. `backup-`, `tmp-backup-`, `cataloxConnectivityProbe`). */ excludeCollectionPathPrefixes?: string[]; }; export type CopyAllFirestoreCollectionsToMongoResult = { ok: boolean; dryRun: boolean; mongoDbName: string; entries: Array<{ firestorePath: string; mongoCollection: string; documentCount: number; documentsWritten: number; }>; issues: FirestoreMongoTransferIssue[]; }; /** * Convert Firestore value types into BSON-friendly JSON so Mongo stores can read * the same logical documents (Timestamps → ISO strings, refs → paths, etc.). */ export declare function sanitizeFirestoreValueForMongo(value: unknown): unknown; /** Copy one Firestore collection into a Mongo collection of the same slash path. */ export declare function copyFirestoreCollectionToMongo(input: CopyFirestoreCollectionToMongoInput): Promise; /** * Full exact copy of Firestore → Mongo: discovers collections (recursively by default) * and upserts every document into the Mongo database bound to `mongo` (typically `catalox`). */ export declare function copyAllFirestoreCollectionsToMongo(input: CopyAllFirestoreCollectionsToMongoInput): Promise; //# sourceMappingURL=firestore-mongo-transfer.d.ts.map