import type { MongoStorage } from '../index.js'; import type { Logger } from '../../../types/index.js'; import CRUD from './CRUD.js'; import type { Db, ObjectId } from './CRUD.js'; export type MigrationDoc = { _id: string | ObjectId; completedAt?: number; metadata?: Record; owner?: string; expiresAt?: number; createdAt?: number; updatedAt?: number; }; declare class Migrations extends CRUD { protected readonly storage: MongoStorage; static collectionName: string; constructor(storage: MongoStorage, mongodb: Db, logger: Logger | null); private indexes; private lockId; isCompleted(name: string): Promise; markCompleted(name: string, metadata?: Record): Promise; acquireLock(name: string, owner: string, leaseMs: number): Promise; renewLock(name: string, owner: string, leaseMs: number): Promise; releaseLock(name: string, owner: string): Promise; } export default Migrations;