interface AbstractLevelDOWN { open(callback: (err?: any) => void): void; open(options: O, callback: (err?: any) => void): void; close(callback: (err?: any) => void): void; get(key: K, callback: (err: any, value: V) => any): void; get(key: K, options: GO, callback: (err: any, value: V) => any): void; put(key: K, value: V, callback: (err: any) => any): void; put(key: K, value: V, options: PO, callback: (err: any) => any): void; del(key: K, callback: (err: any) => any): void; del(key: K, options: DO, callback: (err: any) => any): void; batch(): AbstractChainedBatch; batch(array: Batch[], callback: (err: any) => any): AbstractChainedBatch; batch(array: Batch[], options: BO, callback: (err: any) => any): AbstractChainedBatch; iterator(options?: IO & AbstractIteratorOptions): AbstractIterator; [index: string]: any; } interface AbstractLevelDOWNConstructor { new (location: string): AbstractLevelDOWN< K, V, O, PO, GO, DO, IO, BO>; (location: string): AbstractLevelDOWN< K, V, O, PO, GO, DO, IO, BO>; } export interface AbstractIteratorOptions { gt?: K; gte?: K; lt?: K; lte?: K; reverse?: boolean; limit?: number; keys?: boolean; values?: boolean; } export type Batch = PutBatch | DelBatch export interface PutBatch { type: 'put', key: K, value: V } export interface DelBatch { type: 'del', key: K } interface AbstractIterator { db: any; next(callback: (err: any, key: K, value: V) => void): this; end(callback: (err: any) => void): void; } interface AbstractIteratorConstructor { new (db: any): AbstractIterator; (db: any): AbstractIterator; } interface AbstractChainedBatch extends AbstractChainedBatchConstructor { put(key: K, value: V): this; del(key: K): this; clear(): this; write(callback: any): any write(options: BO, callback: any): any [index: string]: any; } interface AbstractChainedBatchConstructor { new (db: any): AbstractChainedBatch; (db: any): AbstractChainedBatch; } export const AbstractLevelDOWN: AbstractLevelDOWNConstructor export const AbstractIterator: AbstractIteratorConstructor export const AbstractChainedBatch: AbstractChainedBatchConstructor