///
import { Duplex } from 'stream';
import { DataType } from '../../type';
import { Builder, BuilderOptions } from '../../builder/index';
/** @ignore */
export interface BuilderDuplexOptions extends BuilderOptions {
autoDestroy?: boolean;
highWaterMark?: number;
queueingStrategy?: 'bytes' | 'count';
dictionaryHashFunction?: (value: any) => string | number;
valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;
}
/** @ignore */
export declare function builderThroughNodeStream(options: BuilderDuplexOptions): BuilderDuplex;
/** @ignore */
declare type CB = (error?: Error | null | undefined) => void;
/** @ignore */
declare class BuilderDuplex extends Duplex {
private _finished;
private _numChunks;
private _desiredSize;
private _builder;
private _getSize;
constructor(builder: Builder, options: BuilderDuplexOptions);
_read(size: number): void;
_final(cb?: CB): void;
_write(value: any, _: string, cb?: CB): boolean;
_destroy(err: Error | null, cb?: (error: Error | null) => void): void;
private _maybeFlush;
}
export {};