///
import BN from 'bn.js';
import { ECPoint, UInt160, UInt160Hex, UInt256, UInt256Hex } from './common';
export declare class BinaryWriter {
private readonly head;
private mutableLength;
private mutableTail;
constructor();
private get length();
toBuffer(): Buffer;
writeBytes(value: Buffer): this;
writeUInt8(value: number): this;
writeInt16LE(value: number): this;
writeUInt16LE(value: number): this;
writeUInt16BE(value: number): this;
writeInt32LE(value: number): this;
writeUInt32LE(value: number): this;
writeInt64LE(value: BN): this;
writeUInt64LE(value: BN): this;
writeBoolean(value: boolean): this;
writeUInt160(hash: UInt160 | UInt160Hex): this;
writeUInt256(hash: UInt256 | UInt256Hex): this;
writeFixed8(value: BN): this;
writeFixedString(value: string, length: number): this;
writeArray(values: readonly T[], write: (value: T) => void): this;
writeObject(value: T, write: (key: K, value: T[K]) => void): this;
writeVarBytesLE(value: Buffer): this;
writeVarUIntLE(valueIn: number | BN): this;
writeVarString(value: string, max?: number): this;
writeECPoint(value: ECPoint): this;
private finish;
private push;
}