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