import { ByteSource } from "./utils.js"; import { BinaryEncoder } from "./encoder.js"; import { FieldType } from "./constants.js"; /** * BinaryWriter implements encoders for all the wire types specified in * https://developers.google.com/protocol-buffers/docs/encoding. */ export declare class BinaryWriter { blocks_: Array; totalLength_: number; encoder_: BinaryEncoder; constructor(); /** * Append a typed array of bytes onto the buffer. */ appendUint8Array_(arr: Uint8Array): void; /** * Begins a new message by writing the field header and returning a bookmark * which we will use to patch in the message length to in endDelimited_ below. */ beginDelimited_(field: number): Array; /** * Ends a message by encoding the _change_ in length of the buffer to the * parent block and adds the number of bytes needed to encode that length to * the total byte length. */ endDelimited_(bookmark: Array): void; /** * Writes a pre-serialized message to the buffer. */ writeSerializedMessage(bytes: Uint8Array, start: number, end: number): void; /** * Writes a pre-serialized message to the buffer if the message and endpoints * are non-null. */ maybeWriteSerializedMessage(bytes: Uint8Array | null, start: number | null, end: number | null): void; /** * Resets the writer, throwing away any accumulated buffers. */ reset(): void; /** * Converts the encoded data into a Uint8Array. */ getResultBuffer(): Uint8Array; /** * Encodes a (field number, wire type) tuple into a wire-format field header * and stores it in the buffer as a varint. */ writeFieldHeader_(field: number, wireType: number): void; /** * Writes a field of any valid scalar type to the binary stream. */ writeAny(fieldType: FieldType, field: number, value: any): void; /** * Writes a varint field to the buffer without range checking. */ writeUnsignedVarint32_(field: number, value: number | null): void; /** * Writes a varint field to the buffer without range checking. */ writeSignedVarint32_(field: number, value: number | null): void; /** * Writes a varint field to the buffer without range checking. */ writeUnsignedVarint64_(field: number, value: number | null): void; /** * Writes a varint field to the buffer without range checking. */ writeSignedVarint64_(field: number, value: number | null): void; /** * Writes a zigzag varint field to the buffer without range checking. */ writeZigzagVarint32_(field: number, value: number | null): void; /** * Writes a zigzag varint field to the buffer without range checking. */ writeZigzagVarint64_(field: number, value: number | null): void; /** * Writes a zigzag varint field to the buffer without range checking. */ writeZigzagVarint64String_(field: number, value: string | null): void; /** * Writes a zigzag varint field to the buffer without range checking. */ writeZigzagVarintHash64_(field: number, value: string | null): void; /** * Writes an int32 field to the buffer. Numbers outside the range [-2^31,2^31) * will be truncated. */ writeInt32(field: number, value: number | null): void; /** * Writes an int32 field represented as a string to the buffer. Numbers outside * the range [-2^31,2^31) will be truncated. */ writeInt32String(field: number, value: string | null): void; /** * Writes an int64 field to the buffer. Numbers outside the range [-2^63,2^63) * will be truncated. */ writeInt64(field: number, value: number | null): void; /** * Writes a int64 field (with value as a string) to the buffer. */ writeInt64String(field: number, value: string | null): void; /** * Writes a uint32 field to the buffer. Numbers outside the range [0,2^32) * will be truncated. */ writeUint32(field: number, value: number | null): void; /** * Writes a uint32 field represented as a string to the buffer. Numbers outside * the range [0,2^32) will be truncated. */ writeUint32String(field: number, value: string | null): void; /** * Writes a uint64 field to the buffer. Numbers outside the range [0,2^64) * will be truncated. */ writeUint64(field: number, value: number | null): void; /** * Writes a uint64 field (with value as a string) to the buffer. */ writeUint64String(field: number, value: string | null): void; /** * Writes an sint32 field to the buffer. Numbers outside the range [-2^31,2^31) * will be truncated. */ writeSint32(field: number, value: number | null): void; /** * Writes an sint64 field to the buffer. Numbers outside the range [-2^63,2^63) * will be truncated. */ writeSint64(field: number, value: number | null): void; /** * Writes an sint64 field to the buffer from a hash64 encoded value. Numbers * outside the range [-2^63,2^63) will be truncated. */ writeSintHash64(field: number, value: string | null): void; /** * Writes an sint64 field to the buffer. Numbers outside the range [-2^63,2^63) * will be truncated. */ writeSint64String(field: number, value: string | null): void; /** * Writes a fixed32 field to the buffer. Numbers outside the range [0,2^32) * will be truncated. */ writeFixed32(field: number, value: number | null): void; /** * Writes a fixed64 field to the buffer. Numbers outside the range [0,2^64) * will be truncated. */ writeFixed64(field: number, value: number | null): void; /** * Writes a fixed64 field (with value as a string) to the buffer. */ writeFixed64String(field: number, value: string | null): void; /** * Writes a sfixed32 field to the buffer. Numbers outside the range * [-2^31,2^31) will be truncated. */ writeSfixed32(field: number, value: number | null): void; /** * Writes a sfixed64 field to the buffer. Numbers outside the range * [-2^63,2^63) will be truncated. */ writeSfixed64(field: number, value: number | null): void; /** * Writes a sfixed64 string field to the buffer. Numbers outside the range * [-2^63,2^63) will be truncated. */ writeSfixed64String(field: number, value: string | null): void; /** * Writes a single-precision floating point field to the buffer. Numbers * requiring more than 32 bits of precision will be truncated. */ writeFloat(field: number, value: number | null): void; /** * Writes a double-precision floating point field to the buffer. As this is the * native format used by JavaScript, no precision will be lost. */ writeDouble(field: number, value: number | null): void; /** * Writes a boolean field to the buffer. We allow numbers as input * because the JSPB code generator uses 0/1 instead of true/false to save space * in the string representation of the proto. */ writeBool(field: number, value: boolean | number | undefined): void; /** * Writes an enum field to the buffer. */ writeEnum(field: number, value: number | null): void; /** * Writes a string field to the buffer. */ writeString(field: number, value: string | null): void; /** * Writes an arbitrary byte field to the buffer. Note - to match the behavior * of the C++ implementation, empty byte arrays _are_ serialized. */ writeBytes(field: number, value: ByteSource | null): void; /** * Writes a message to the buffer. */ writeMessage(field: number, value: MessageType | null, writerCallback: (arg0: MessageType, arg1: BinaryWriter) => void): void; /** * Writes a message set extension to the buffer. */ writeMessageSet(field: number, value: MessageType | null, writerCallback: (arg0: MessageType, arg1: BinaryWriter) => void): void; /** * Writes a group message to the buffer. */ writeGroup(field: number, value: MessageType | null, writerCallback: (arg0: MessageType, arg1: BinaryWriter) => void): void; /** * Writes a 64-bit hash string field (8 characters @ 8 bits of data each) to * the buffer. */ writeFixedHash64(field: number, value: string | null): void; /** * Writes a 64-bit hash string field (8 characters @ 8 bits of data each) to * the buffer. */ writeVarintHash64(field: number, value: string | null): void; /** * Writes a 64-bit field to the buffer as a fixed64. */ writeSplitFixed64(field: number, lowBits: number, highBits: number): void; /** * Writes a 64-bit field to the buffer as a varint. */ writeSplitVarint64(field: number, lowBits: number, highBits: number): void; /** * Writes a 64-bit field to the buffer as a zigzag encoded varint. */ writeSplitZigzagVarint64(field: number, lowBits: number, highBits: number): void; /** * Writes an array of numbers to the buffer as a repeated 32-bit int field. */ writeRepeatedInt32(field: number, value: Array | null): void; /** * Writes an array of numbers formatted as strings to the buffer as a repeated * 32-bit int field. */ writeRepeatedInt32String(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated 64-bit int field. */ writeRepeatedInt64(field: number, value: Array | null): void; /** * Writes an array of 64-bit values to the buffer as a fixed64. */ writeRepeatedSplitFixed64(field: number, value: Array | null, lo: (arg0: T) => number, hi: (arg0: T) => number): void; /** * Writes an array of 64-bit values to the buffer as a varint. */ writeRepeatedSplitVarint64(field: number, value: Array | null, lo: (arg0: T) => number, hi: (arg0: T) => number): void; /** * Writes an array of 64-bit values to the buffer as a zigzag varint. */ writeRepeatedSplitZigzagVarint64(field: number, value: Array | null, lo: (arg0: T) => number, hi: (arg0: T) => number): void; /** * Writes an array of numbers formatted as strings to the buffer as a repeated * 64-bit int field. */ writeRepeatedInt64String(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a repeated unsigned 32-bit int * field. */ writeRepeatedUint32(field: number, value: Array | null): void; /** * Writes an array of numbers formatted as strings to the buffer as a repeated * unsigned 32-bit int field. */ writeRepeatedUint32String(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a repeated unsigned 64-bit int * field. */ writeRepeatedUint64(field: number, value: Array | null): void; /** * Writes an array of numbers formatted as strings to the buffer as a repeated * unsigned 64-bit int field. */ writeRepeatedUint64String(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a repeated signed 32-bit int field. */ writeRepeatedSint32(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a repeated signed 64-bit int field. */ writeRepeatedSint64(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a repeated signed 64-bit int field. */ writeRepeatedSint64String(field: number, value: Array | null): void; /** * Writes an array of hash64 strings to the buffer as a repeated signed 64-bit * int field. */ writeRepeatedSintHash64(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated fixed32 field. This * works for both signed and unsigned fixed32s. */ writeRepeatedFixed32(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated fixed64 field. This * works for both signed and unsigned fixed64s. */ writeRepeatedFixed64(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated fixed64 field. This * works for both signed and unsigned fixed64s. */ writeRepeatedFixed64String(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated sfixed32 field. */ writeRepeatedSfixed32(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated sfixed64 field. */ writeRepeatedSfixed64(field: number, value: Array | null): void; /** * Writes an array of decimal strings to the buffer as a repeated sfixed64 * field. */ writeRepeatedSfixed64String(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated float field. */ writeRepeatedFloat(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a repeated double field. */ writeRepeatedDouble(field: number, value: Array | null): void; /** * Writes an array of booleans to the buffer as a repeated bool field. */ writeRepeatedBool(field: number, value: Array | null): void; /** * Writes an array of enums to the buffer as a repeated enum field. */ writeRepeatedEnum(field: number, value: Array | null): void; /** * Writes an array of strings to the buffer as a repeated string field. */ writeRepeatedString(field: number, value: Array | null): void; /** * Writes an array of arbitrary byte fields to the buffer. */ writeRepeatedBytes(field: number, value: Array | null): void; /** * Writes an array of messages to the buffer. */ writeRepeatedMessage(field: number, value: Array | null, writerCallback: (arg0: MessageType, arg1: BinaryWriter) => any): void; /** * Writes an array of group messages to the buffer. * @template MessageType */ writeRepeatedGroup(field: number, value: Array | null, writerCallback: (arg0: MessageType, arg1: BinaryWriter) => any): void; /** * Writes a 64-bit hash string field (8 characters @ 8 bits of data each) to * the buffer. */ writeRepeatedFixedHash64(field: number, value: Array | null): void; /** * Writes a repeated 64-bit hash string field (8 characters @ 8 bits of data * each) to the buffer. */ writeRepeatedVarintHash64(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed 32-bit int field. */ writePackedInt32(field: number, value: Array | null): void; /** * Writes an array of numbers represented as strings to the buffer as a packed * 32-bit int field. */ writePackedInt32String(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed 64-bit int field. */ writePackedInt64(field: number, value: Array | null): void; /** * Writes an array of 64-bit values to the buffer as a fixed64. */ writePackedSplitFixed64(field: number, value: Array | null, lo: (arg0: T) => number, hi: (arg0: T) => number): void; /** * Writes an array of 64-bit values to the buffer as a varint. */ writePackedSplitVarint64(field: number, value: Array | null, lo: (arg0: T) => number, hi: (arg0: T) => number): void; /** * Writes an array of 64-bit values to the buffer as a zigzag varint. */ writePackedSplitZigzagVarint64(field: number, value: Array | null, lo: (arg0: T) => number, hi: (arg0: T) => number): void; /** * Writes an array of numbers represented as strings to the buffer as a packed * 64-bit int field. */ writePackedInt64String(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a packed unsigned 32-bit int field. */ writePackedUint32(field: number, value: Array | null): void; /** * Writes an array of numbers represented as strings to the buffer as a packed * unsigned 32-bit int field. */ writePackedUint32String(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a packed unsigned 64-bit int field. */ writePackedUint64(field: number, value: Array | null): void; /** * Writes an array of numbers represented as strings to the buffer as a packed * unsigned 64-bit int field. */ writePackedUint64String(field: number, value: Array | null): void; /** * Writes an array numbers to the buffer as a packed signed 32-bit int field. */ writePackedSint32(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed signed 64-bit int field. */ writePackedSint64(field: number, value: Array | null): void; /** * Writes an array of decimal strings to the buffer as a packed signed 64-bit * int field. */ writePackedSint64String(field: number, value: Array | null): void; /** * Writes an array of hash 64 strings to the buffer as a packed signed 64-bit * int field. */ writePackedSintHash64(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed fixed32 field. */ writePackedFixed32(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed fixed64 field. */ writePackedFixed64(field: number, value: Array | null): void; /** * Writes an array of numbers represented as strings to the buffer as a packed * fixed64 field. */ writePackedFixed64String(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed sfixed32 field. */ writePackedSfixed32(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed sfixed64 field. */ writePackedSfixed64(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed sfixed64 field. */ writePackedSfixed64String(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed float field. */ writePackedFloat(field: number, value: Array | null): void; /** * Writes an array of numbers to the buffer as a packed double field. */ writePackedDouble(field: number, value: Array | null): void; /** * Writes an array of booleans to the buffer as a packed bool field. */ writePackedBool(field: number, value: Array | null): void; /** * Writes an array of enums to the buffer as a packed enum field. */ writePackedEnum(field: number, value: Array | null): void; /** * Writes a 64-bit hash string field (8 characters @ 8 bits of data each) to * the buffer. */ writePackedFixedHash64(field: number, value: Array | null): void; /** * Writes a 64-bit hash string field (8 characters @ 8 bits of data each) to * the buffer. */ writePackedVarintHash64(field: number, value: Array | null): void; }