/// import { MongoClient } from 'mongodb'; export declare function setDemoMode(mode: boolean): void; declare type Strategy = "raw" | "aggregate"; declare const ALL_AGGREGATION_TYPES: readonly ["year", "month", "week", "day", "hour", "minute", "none"]; declare type AggregationType = (typeof ALL_AGGREGATION_TYPES)[number]; export declare abstract class persistence { id: string; ttl: number; strategy: Strategy; keep: number; cleanJob: NodeJS.Timeout; constructor(id: string, ttl?: number, strategy?: Strategy, keep?: number); insert(record: { date: Date; state: any; }, callback: (err: Error, doc: Object) => void): void; getHistory(aggregate: AggregationType, from: Date, to: Date, callback: (err: Error, results: any[]) => void): void; restoreStateFromDB(callback: (err: Error, result: { id: string; state: string | Date; date: Date; }) => void): void; backupStateToDB(state: string | Date, callback: (err: Error) => void): void; cleanOldData(callback: (err: Error) => void): void; abstract doInsert(record: { date: Date; state: any; }, callback: (err: Error, doc: Object) => void): void; abstract doGetHistory(aggregate: AggregationType, from: Date, to: Date, callback: (err: Error, results: any[]) => void): void; abstract doRestoreStateFromDB(callback: (err: Error, result: { id: string; state: string | Date; date: Date; }) => void): void; abstract doBackupStateToDB(state: string | Date, callback: (err: Error) => void): void; abstract doCleanOldData(callback: (err: Error) => void): void; release(): void; } export declare class mongoDB extends persistence { static mongoClient: MongoClient; static connecting: boolean; constructor(id: string, ttl?: number, strategy?: Strategy, keep?: number); private getMongoClient; doInsert(record: { date: Date; state: any; }, callback: (err: Error, doc: Object) => void): void; doRestoreStateFromDB(callback: (err: Error, result: { id: string; state: string | Date; date: Date; }) => void): void; doBackupStateToDB(state: string | Date, callback: (err: Error) => void): void; doGetHistory(aggregate: AggregationType, from: Date, to: Date, callback: (err: Error, results: any[]) => void): void; doCleanOldData(callback: (err: Error) => void): void; devRebuildData(target: AggregationType, from: AggregationType, callback: (err: Error) => void): void; getHistory2(aggregate: AggregationType, from: Date, to: Date, callback: (err: Error, results: any[]) => void): void; release(): void; } export {};