import { PouchCollection } from './PouchCollection'; import { ClassValidate, IModel, Sync } from './types'; import ClassValidator from 'class-validator'; export type ORMSyncOptions = { opts?: PouchDB.Configuration.DatabaseConfiguration; onChange?: (change: PouchDB.Replication.SyncResult) => unknown; onPaused?: (info: unknown) => unknown; onActive?: (info: PouchDB.Replication.SyncResult) => unknown; onError?: (error: unknown) => unknown; }; export declare class PouchORM { private static databases; static LOGGING: boolean; static VALIDATE: ClassValidate; static ClassValidator: typeof ClassValidator; static PouchDB: PouchDB.Static; /** * Set this to enable user change logging with this id for each upsert */ static userId: any; static adapter: any; static ensureDatabase(dbName: string, pouchCollection: PouchCollection, opts?: PouchDB.Configuration.DatabaseConfiguration): PouchDB.Database; private static createChangeListener; static beginChangeListener(dbName: string): void; static stopChangeListener(dbName: string): void; static setUser(userId: string): void; /** * A map of active sync operations * from -> to -> SyncOp reference */ static activeSyncOperations: Record>>; /** * start Synchronizing between 2 files/urls. */ static startSync(fromDB: string, toDB: string, options?: ORMSyncOptions): void; /** * Stop one or all sync operations from a db by name. * @param fromDB * @param toDB - if no destination DB specified, stop all sync ops for DB. */ static stopSync(fromDB: string, toDB?: string): void; /** * deletes everything in a database * @param dbName */ static clearDatabase(dbName: string): Promise<(PouchDB.Core.Error | PouchDB.Core.Response)[]>; static deleteDatabase(dbName: string): Promise; static getClassValidator(): typeof ClassValidator; }