import { DatabaseDriver, DatabaseOption, Encrypted, Index, Records, RequiredLogger, SortOrder } from '../typings';
declare class Mongo implements DatabaseDriver {
    private options;
    private client;
    private collection;
    private db;
    private logger;
    constructor(options: DatabaseOption, logger: RequiredLogger);
    init(): Promise<Mongo>;
    indexNamespace(): Promise<void>;
    get(namespace: string, key: string): Promise<any>;
    getAll(namespace: string, pageOffset?: number, pageLimit?: number, _?: string, sortOrder?: SortOrder): Promise<Records>;
    getByIndex(namespace: string, idx: Index, pageOffset?: number, pageLimit?: number, _?: string, sortOrder?: SortOrder): Promise<Records>;
    getCount(namespace: string, idx?: Index): Promise<number>;
    put(namespace: string, key: string, val: Encrypted, ttl?: number, ...indexes: any[]): Promise<void>;
    delete(namespace: string, key: string): Promise<any>;
    deleteMany(namespace: string, keys: string[]): Promise<void>;
    close(): Promise<void>;
    getStats(): Record<string, number>;
}
declare const _default: {
    new: (options: {
        db: DatabaseOption;
        logger: RequiredLogger;
    }) => Promise<Mongo>;
};
export default _default;
