///
import { AbstractLevelDOWN } from 'abstract-leveldown';
import { LevelUp } from 'levelup';
import { Mutex } from '../../mutex';
import { IJsonSerializable } from '../../serde';
import { BatchOperation, Database, DatabaseSchema, IDatabaseStore, IDatabaseStoreOptions, IDatabaseTransaction, SchemaKey, SchemaValue } from '../database';
import { DatabaseIteratorOptions, DatabaseKeyRange } from '../database/types';
import { LevelupBatch } from './batch';
import { LevelupStore } from './store';
type MetaSchema = {
key: string;
value: IJsonSerializable;
};
type StorageAbstractLevelDown = AbstractLevelDOWN;
export declare class LevelupDatabase extends Database {
db: StorageAbstractLevelDown;
metaStore: LevelupStore;
lock: Mutex;
_levelup: LevelUp | null;
get levelup(): LevelUp;
constructor(db: StorageAbstractLevelDown);
get isOpen(): boolean;
/**
* @param options https://github.com/Level/leveldown/blob/51979d11f576c480bc5729a6adea6ac9fed57216/binding.cc#L980k,
*/
open(): Promise;
close(): Promise;
upgrade(version: number): Promise;
compact(): Promise;
transaction(handler: (transaction: IDatabaseTransaction) => Promise): Promise;
transaction(): IDatabaseTransaction;
batch(writes: BatchOperation, SchemaValue>[]): Promise;
batch(writes?: undefined): LevelupBatch;
get(key: Readonly): Promise;
put(key: Readonly, value: Buffer): Promise;
getAllIter(range?: DatabaseKeyRange, options?: DatabaseIteratorOptions): AsyncGenerator<[Buffer, Buffer]>;
getVersion(): Promise;
putVersion(version: number, transaction?: IDatabaseTransaction): Promise;
protected _createStore(options: IDatabaseStoreOptions): IDatabaseStore;
size(): Promise;
}
export {};
//# sourceMappingURL=database.d.ts.map