import { FieldInstance } from '../enums'; import { SerializedType } from '../types/serialized-type'; import { Buffer } from 'buffer/'; /** * Bytes list is a collection of buffer objects */ declare class BytesList { private bytesArray; /** * Get the total number of bytes in the BytesList * * @return the number of bytes */ getLength(): number; /** * Put bytes in the BytesList * * @param bytesArg A Buffer * @return this BytesList */ put(bytesArg: Buffer): BytesList; /** * Write this BytesList to the back of another bytes list * * @param list The BytesList to write to */ toBytesSink(list: BytesList): void; toBytes(): Buffer; toHex(): string; } /** * BinarySerializer is used to write fields and values to buffers */ declare class BinarySerializer { private sink; constructor(sink: BytesList); /** * Write a value to this BinarySerializer * * @param value a SerializedType value */ write(value: SerializedType): void; /** * Write bytes to this BinarySerializer * * @param bytes the bytes to write */ put(bytes: Buffer): void; /** * Write a value of a given type to this BinarySerializer * * @param type the type to write * @param value a value of that type */ writeType(type: typeof SerializedType, value: SerializedType): void; /** * Write BytesList to this BinarySerializer * * @param bl BytesList to write to BinarySerializer */ writeBytesList(bl: BytesList): void; /** * Calculate the header of Variable Length encoded bytes * * @param length the length of the bytes */ private encodeVariableLength; /** * Write field and value to BinarySerializer * * @param field field to write to BinarySerializer * @param value value to write to BinarySerializer */ writeFieldAndValue(field: FieldInstance, value: SerializedType, isUnlModifyWorkaround?: boolean): void; /** * Write a variable length encoded value to the BinarySerializer * * @param value length encoded value to write to BytesList */ writeLengthEncoded(value: SerializedType, isUnlModifyWorkaround?: boolean): void; } export { BytesList, BinarySerializer };