/// <reference types="pouchdb-find" />
/// <reference types="pouchdb-core" />
/// <reference types="pouchdb-mapreduce" />
/// <reference types="pouchdb-replication" />
import { ILogMessage, ILogMessageListener, IServer } from '../interfaces/server.js';
import { Logger } from 'pino';
import { IConfig } from '../models/config.js';
export declare class PouchArchiver implements ILogMessageListener {
    private readonly server;
    private readonly log;
    private localDatabase;
    private remoteDatabase;
    private readonly syncInterval;
    private readonly dataFolder;
    private readonly partitionKeyList;
    private activeLocalDataFolder;
    constructor(server: IServer, config: IConfig, log: Logger, db: PouchDB.Database);
    createDatabase(): PouchDB.Database;
    sync(): Promise<void>;
    setup(): void;
    cleanUp(): Promise<void>;
    getKey(message: Record<string, any>, id: string): string;
    getId(message: ILogMessage): string;
    onLogMessage(message: ILogMessage): Promise<any>;
}
