// Type definitions for encoding-down 5.0 // Project: https://github.com/Level/encoding-down // Definitions by: Meirion Hughes // Daniel Byrne // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 import { AbstractLevelDOWN, AbstractIteratorOptions, AbstractIterator, AbstractOpenOptions, AbstractGetOptions, ErrorCallback, ErrorValueCallback, AbstractChainedBatch, AbstractBatch, AbstractOptions } from 'abstract-leveldown'; import { CodecOptions, CodecEncoder } from 'level-codec'; interface EncodingDown extends AbstractLevelDOWN { get(key: K, cb: ErrorValueCallback): void; get(key: K, options: EncodingDown.GetOptions, cb: ErrorValueCallback): void; put(key: K, value: V, cb: ErrorCallback): void; put(key: K, value: V, options: EncodingDown.PutOptions, cb: ErrorCallback): void; del(key: K, cb: ErrorCallback): void; del(key: K, options: EncodingDown.DelOptions, cb: ErrorCallback): void; batch(): EncodingDown.ChainedBatch; batch(array: AbstractBatch[], cb: ErrorCallback): EncodingDown.ChainedBatch; batch(array: AbstractBatch[], options: EncodingDown.BatchOptions, cb: ErrorCallback): EncodingDown.ChainedBatch; iterator(options?: EncodingDown.IteratorOptions): AbstractIterator; } declare namespace EncodingDown { interface GetOptions extends AbstractGetOptions, CodecOptions {} interface PutOptions extends AbstractOptions, CodecOptions {} interface DelOptions extends AbstractOptions, CodecOptions {} interface BatchOptions extends AbstractOptions, CodecOptions {} interface IteratorOptions extends AbstractIteratorOptions, CodecOptions {} interface ChainedBatch extends AbstractChainedBatch { write(cb: any): any; write(options: CodecOptions & AbstractOptions, cb: any): any; } interface Constructor { // tslint:disable-next-line:no-unnecessary-generics (db: AbstractLevelDOWN, options?: CodecOptions): EncodingDown; // tslint:disable-next-line:no-unnecessary-generics new (db: AbstractLevelDOWN, options?: CodecOptions): EncodingDown; } } declare const EncodingDown: EncodingDown.Constructor; export default EncodingDown;