///
import { ReadAllStorage, ReadGetAllStorage, ReadMetadataStorage, ReadStorage } from '@neo-one/node-core-esnext-esm';
import { LevelUp } from 'levelup';
import { Observable } from 'rxjs';
declare type SerializeKey = (key: Key) => string;
export declare function createTryGet({ get, }: {
readonly get: (key: Key) => Promise;
}): (key: Key) => Promise;
export declare function createTryGetLatest({ db, latestKey, deserializeResult, get, }: {
readonly db: LevelUp;
readonly latestKey: string;
readonly deserializeResult: (latestResult: Buffer) => Key;
readonly get: (key: Key) => Promise;
}): () => Promise;
export declare function createReadStorage({ db, serializeKey, deserializeValue, }: {
readonly db: LevelUp;
readonly serializeKey: SerializeKey;
readonly deserializeValue: (value: Buffer) => Value;
}): ReadStorage;
export declare function createAll$({ db, minKey, maxKey, deserializeValue, }: {
readonly db: LevelUp;
readonly minKey: string;
readonly maxKey: string;
readonly deserializeValue: (value: Buffer) => Value;
}): Observable;
export declare function createReadAllStorage({ db, serializeKey, minKey, maxKey, deserializeValue, }: {
readonly db: LevelUp;
readonly serializeKey: SerializeKey;
readonly minKey: string;
readonly maxKey: string;
readonly deserializeValue: (value: Buffer) => Value;
}): ReadAllStorage;
export declare function createReadGetAllStorage({ db, serializeKey, getMinKey, getMaxKey, deserializeValue, }: {
readonly db: LevelUp;
readonly serializeKey: SerializeKey;
readonly getMinKey: (keys: Keys) => string;
readonly getMaxKey: (keys: Keys) => string;
readonly deserializeValue: (value: Buffer) => Value;
}): ReadGetAllStorage;
export declare function createTryGetMetadata({ get, }: {
readonly get: () => Promise;
}): () => Promise;
export declare function createReadMetadataStorage({ db, key, deserializeValue, }: {
readonly db: LevelUp;
readonly key: string;
readonly deserializeValue: (value: Buffer) => Value;
}): ReadMetadataStorage;
export {};