///
import { Reader as BaseReader } from '../reader';
import { Writer as BaseWriter } from '../writer';
export interface ReaderOptions {
endian?: 'big' | 'little';
}
export declare class Reader extends BaseReader {
reader: BaseReader;
options: ReaderOptions;
pos: number;
buf: Buffer | undefined;
constructor(rd: BaseReader, options: ReaderOptions);
readData(len?: number, peekOnly?: boolean): Buffer | undefined;
ensure(len: number): number;
peek(len: number): Buffer | undefined;
peekAll(): Buffer | undefined;
unread(len: number): void;
}
export interface WriterOptions {
endian?: 'big' | 'little';
bufSize?: number;
}
export declare class Writer extends BaseWriter {
writer: BaseWriter;
options: WriterOptions;
pos: number;
buf: Buffer;
constructor(wr: BaseWriter, options?: WriterOptions);
flush(): void;
ensure(len: number): void;
writeDate(buf: Buffer): void;
}
export interface BinaryReader extends Reader {
read(len?: number): Buffer | undefined;
readInt8(): number;
peekInt8(): number;
unreadInt8(): void;
readUInt8(): number;
peekUInt8(): number;
unreadUInt8(): void;
readInt16(): number;
peekInt16(): number;
unreadInt16(): void;
readUInt16(): number;
peekUInt16(): number;
unreadUInt16(): void;
readInt32(): number;
peekInt32(): number;
unreadInt32(): void;
readUInt32(): number;
peekUInt32(): number;
unreadUInt32(): void;
readFloat(): number;
peekFloat(): number;
unreadFloat(): void;
readDouble(): number;
peekDouble(): number;
unreadDouble(): void;
}
export interface BinaryWriter extends Writer {
writeInt8(val: number): void;
writeUInt8(val: number): void;
writeInt16(val: number): void;
writeUInt16(val: number): void;
writeInt32(val: number): void;
writeUInt32(val: number): void;
writeFloat(val: number): void;
writeDouble(val: number): void;
}
export declare function reader(rd: BaseReader, options?: ReaderOptions): BinaryReader;
export declare function writer(wr: BaseWriter, options?: WriterOptions): BinaryWriter;