UNPKG

22.9 kBTypeScriptView Raw
1// Type definitions for google-protobuf 3.15
2// Project: https://github.com/google/google-protobuf
3// Definitions by: Marcus Longmuir <https://github.com/marcuslongmuir>
4// Chaitanya Kamatham <https://github.com/kamthamc>
5// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
6
7type ByteSource = ArrayBuffer | Uint8Array | number[] | string;
8type ScalarFieldType = boolean | number | string;
9type RepeatedFieldType = ScalarFieldType[] | Uint8Array[];
10type AnyFieldType = ScalarFieldType | RepeatedFieldType | Uint8Array;
11type FieldValue = string | number | boolean | Uint8Array | FieldValueArray | undefined;
12interface FieldValueArray extends Array<FieldValue> {}
13
14export abstract class Message {
15 getJsPbMessageId(): string | undefined;
16 static initialize(
17 msg: Message,
18 data: Message.MessageArray,
19 messageId: string | number,
20 suggestedPivot: number,
21 repeatedFields?: number[] | null,
22 oneofFields?: number[][] | null,
23 ): void;
24 static toObjectList<T extends Message>(
25 field: T[],
26 toObjectFn: (includeInstance: boolean, data: T) => {},
27 includeInstance?: boolean,
28 ): Array<{}>;
29 static toObjectExtension(
30 msg: Message,
31 obj: {},
32 extensions: { [key: number]: ExtensionFieldInfo<Message> },
33 getExtensionFn: (fieldInfo: ExtensionFieldInfo<Message>) => Message,
34 includeInstance?: boolean,
35 ): void;
36 serializeBinaryExtensions(
37 proto: Message,
38 writer: BinaryWriter,
39 extensions: { [key: number]: ExtensionFieldBinaryInfo<Message> },
40 getExtensionFn: <T>(fieldInfo: ExtensionFieldInfo<T>) => T,
41 ): void;
42 readBinaryExtension(
43 proto: Message,
44 reader: BinaryReader,
45 extensions: { [key: number]: ExtensionFieldBinaryInfo<Message> },
46 setExtensionFn: <T>(fieldInfo: ExtensionFieldInfo<T>, val: T) => void,
47 ): void;
48 static getField(msg: Message, fieldNumber: number): FieldValue | null;
49 static getOptionalFloatingPointField(msg: Message, fieldNumber: number): number | undefined;
50 static getRepeatedFloatingPointField(msg: Message, fieldNumber: number): number[];
51 static bytesAsB64(bytes: Uint8Array): string;
52 static bytesAsU8(str: string): Uint8Array;
53 static bytesListAsB64(bytesList: Uint8Array[]): string[];
54 static bytesListAsU8(strList: string[]): Uint8Array[];
55 static getFieldWithDefault<T>(msg: Message, fieldNumber: number, defaultValue: T): T;
56 static getMapField(
57 msg: Message,
58 fieldNumber: number,
59 noLazyCreate: boolean,
60 valueCtor?: typeof Message,
61 ): Map<any, any>;
62 static setField(
63 msg: Message,
64 fieldNumber: number,
65 value: FieldValue,
66 ): void;
67 static addToRepeatedField(
68 msg: Message,
69 fieldNumber: number,
70 value: any,
71 index?: number,
72 ): void;
73 static setOneofField(
74 msg: Message,
75 fieldNumber: number,
76 oneof: number[],
77 value: FieldValue,
78 ): void;
79 static computeOneofCase(msg: Message, oneof: number[]): number;
80 static getWrapperField<T extends Message>(
81 msg: Message,
82 ctor: { new(): T },
83 fieldNumber: number,
84 required?: number,
85 ): T;
86 static getRepeatedWrapperField<T extends Message>(
87 msg: Message,
88 ctor: { new(): T },
89 fieldNumber: number,
90 ): T[];
91 static setWrapperField<T extends Message>(
92 msg: Message,
93 fieldNumber: number,
94 value?: T | Map<any, any>,
95 ): void;
96 static setOneofWrapperField(
97 msg: Message,
98 fieldNumber: number,
99 oneof: number[],
100 value: any,
101 ): void;
102 static setRepeatedWrapperField<T extends Message>(
103 msg: Message,
104 fieldNumber: number,
105 value?: T[],
106 ): void;
107 static addToRepeatedWrapperField<T extends Message>(
108 msg: Message,
109 fieldNumber: number,
110 value: T | undefined,
111 ctor: { new(): T },
112 index?: number,
113 ): T;
114 static toMap(
115 field: any[],
116 mapKeyGetterFn: (field: any) => string,
117 toObjectFn?: Message.StaticToObject,
118 includeInstance?: boolean,
119 ): void;
120 toArray(): Message.MessageArray;
121 toString(): string;
122 getExtension<T>(fieldInfo: ExtensionFieldInfo<T>): T;
123 setExtension<T>(fieldInfo: ExtensionFieldInfo<T>, value: T): void;
124 static difference<T extends Message>(m1: T, m2: T): T;
125 static equals(m1: Message, m2: Message): boolean;
126 static compareExtensions(extension1: {}, extension2: {}): boolean;
127 static compareFields(field1: any, field2: any): boolean;
128 cloneMessage(): this;
129 clone(): this;
130 static clone<T extends Message>(msg: T): T;
131 static cloneMessage<T extends Message>(msg: T): T;
132 static copyInto(fromMessage: Message, toMessage: Message): void;
133 static registerMessageType(id: number, constructor: typeof Message): void;
134
135 abstract serializeBinary(): Uint8Array;
136 abstract toObject(includeInstance?: boolean): {};
137
138 // These are `abstract static`, but that isn't allowed. Subclasses of Message will have these methods and properties
139 // and not having them on Message makes using this class for its intended purpose quite difficult.
140 static deserializeBinary(bytes: Uint8Array): Message;
141 static deserializeBinaryFromReader(message: Message, reader: BinaryReader): Message;
142 static serializeBinaryToWriter(message: Message, writer: BinaryWriter): void;
143 static toObject(includeInstance: boolean, msg: Message): {};
144 static extensions: { [key: number]: ExtensionFieldInfo<Message> };
145 static extensionsBinary: { [key: number]: ExtensionFieldBinaryInfo<Message> };
146}
147
148export namespace Message {
149 type MessageArray = any[]; // This type needs to reference itself
150 type StaticToObject = (includeInstance: boolean, msg: Message) => {};
151}
152
153export class ExtensionFieldInfo<T> {
154 fieldIndex: number;
155 fieldName: number;
156 ctor: typeof Message;
157 toObjectFn: Message.StaticToObject;
158 isRepeated: number;
159 constructor(
160 fieldIndex: number,
161 fieldName: { [key: string]: number },
162 ctor: typeof Message,
163 toObjectFn: Message.StaticToObject,
164 isRepeated: number,
165 );
166 isMessageType(): boolean;
167}
168
169export class ExtensionFieldBinaryInfo<T> {
170 fieldInfo: ExtensionFieldInfo<T>;
171 binaryReaderFn: BinaryRead;
172 binaryWriterFn: BinaryWrite;
173 opt_binaryMessageSerializeFn: (msg: Message, writer: BinaryWriter) => void;
174 opt_binaryMessageDeserializeFn: (msg: Message, reader: BinaryReader) => Message;
175 opt_isPacked: boolean;
176 constructor(
177 fieldInfo: ExtensionFieldInfo<T>,
178 binaryReaderFn: BinaryRead,
179 binaryWriterFn: BinaryWrite,
180 opt_binaryMessageSerializeFn: (msg: Message, writer: BinaryWriter) => void,
181 opt_binaryMessageDeserializeFn: (msg: Message, reader: BinaryReader) => Message,
182 opt_isPacked: boolean,
183 );
184}
185
186export class Map<K, V> {
187 constructor(
188 arr: Array<[K, V]>,
189 valueCtor?: { new(init: any): V },
190 );
191 toArray(): Array<[K, V]>;
192 toObject(includeInstance?: boolean): Array<[K, V]>;
193 toObject<VO>(
194 includeInstance: boolean,
195 valueToObject: (includeInstance: boolean, valueWrapper: V) => VO,
196 ): Array<[K, VO]>;
197 static fromObject<TK, TV>(
198 entries: Array<[TK, TV]>,
199 valueCtor: any,
200 valueFromObject: any,
201 ): Map<TK, TV>;
202 getLength(): number;
203 clear(): void;
204 del(key: K): boolean;
205 getEntryList(): Array<[K, V]>;
206 entries(): Map.Iterator<[K, V]>;
207 keys(): Map.Iterator<K>;
208 values(): Map.Iterator<V>;
209 forEach(
210 callback: (entry: V, key: K) => void,
211 thisArg?: {},
212 ): void;
213 set(key: K, value: V): this;
214 get(key: K): V | undefined;
215 has(key: K): boolean;
216 serializeBinary(
217 fieldNumber: number,
218 writer: BinaryWriter,
219 keyWriterFn: (field: number, key: K) => void,
220 valueWriterFn: (field: number, value: V, writerCallback: BinaryWriteCallback) => void,
221 writeCallback?: BinaryWriteCallback,
222 ): void;
223 static deserializeBinary<K, V>(
224 map: Map<K, V>,
225 reader: BinaryReader,
226 keyReaderFn: (reader: BinaryReader) => K,
227 valueReaderFn: (reader: BinaryReader, value: any, readerCallback: BinaryReadCallback) => V,
228 readCallback?: BinaryReadCallback,
229 defaultKey?: K,
230 defaultValue?: V,
231 ): void;
232}
233
234export namespace Map {
235 // This is implemented by jspb.Map.ArrayIteratorIterable_, but that class shouldn't be exported
236 interface Iterator<T> {
237 [Symbol.iterator](): Iterator<T>;
238 next(): IteratorResult<T>;
239 }
240 interface IteratorResult<T> {
241 done: boolean;
242 value: T;
243 }
244}
245
246type BinaryReadReader = (msg: any, binaryReader: BinaryReader) => void;
247
248type BinaryRead = (msg: any, reader: BinaryReadReader) => any;
249
250type BinaryReadCallback = (value: any, binaryReader: BinaryReader) => void;
251
252type BinaryWriteCallback = (value: any, binaryWriter: BinaryWriter) => void;
253
254type BinaryWrite = (fieldNumber: number, value: any, writerCallback: BinaryWriteCallback) => void;
255
256export class BinaryReader {
257 constructor(bytes?: ByteSource, start?: number, length?: number);
258 static alloc(bytes?: ByteSource, start?: number, length?: number): BinaryReader;
259 alloc(bytes?: ByteSource, start?: number, length?: number): BinaryReader;
260 free(): void;
261 getFieldCursor(): number;
262 getCursor(): number;
263 getBuffer(): Uint8Array;
264 getFieldNumber(): number;
265 getWireType(): BinaryConstants.WireType;
266 isDelimited(): boolean;
267 isEndGroup(): boolean;
268 getError(): boolean;
269 setBlock(bytes?: ByteSource, start?: number, length?: number): void;
270 reset(): void;
271 advance(count: number): void;
272 nextField(): boolean;
273 unskipHeader(): void;
274 skipMatchingFields(): void;
275 skipVarintField(): void;
276 skipDelimitedField(): void;
277 skipFixed32Field(): void;
278 skipFixed64Field(): void;
279 skipGroup(): void;
280 skipField(): void;
281 registerReadCallback(callbackName: string, callback: (binaryReader: BinaryReader) => any): void;
282 runReadCallback(callbackName: string): any;
283 readAny(fieldType: BinaryConstants.FieldType): AnyFieldType;
284 readMessage: BinaryRead;
285 readGroup(field: number, message: Message, reader: BinaryReadReader): void;
286 getFieldDecoder(): BinaryDecoder;
287 readInt32(): number;
288 readInt32String(): string;
289 readInt64(): number;
290 readInt64String(): string;
291 readUint32(): number;
292 readUint32String(): string;
293 readUint64(): number;
294 readUint64String(): string;
295 readSint32(): number;
296 readSint64(): number;
297 readSint64String(): string;
298 readFixed32(): number;
299 readFixed64(): number;
300 readFixed64String(): string;
301 readSfixed32(): number;
302 readSfixed32String(): string;
303 readSfixed64(): number;
304 readSfixed64String(): string;
305 readFloat(): number;
306 readDouble(): number;
307 readBool(): boolean;
308 readEnum(): number;
309 readString(): string;
310 readBytes(): Uint8Array;
311 readVarintHash64(): string;
312 readFixedHash64(): string;
313 readPackedInt32(): number[];
314 readPackedInt32String(): string[];
315 readPackedInt64(): number[];
316 readPackedInt64String(): string[];
317 readPackedUint32(): number[];
318 readPackedUint32String(): string[];
319 readPackedUint64(): number[];
320 readPackedUint64String(): string[];
321 readPackedSint32(): number[];
322 readPackedSint64(): number[];
323 readPackedSint64String(): string[];
324 readPackedFixed32(): number[];
325 readPackedFixed64(): number[];
326 readPackedFixed64String(): string[];
327 readPackedSfixed32(): number[];
328 readPackedSfixed64(): number[];
329 readPackedSfixed64String(): string[];
330 readPackedFloat(): number[];
331 readPackedDouble(): number[];
332 readPackedBool(): boolean[];
333 readPackedEnum(): number[];
334 readPackedVarintHash64(): string[];
335 readPackedFixedHash64(): string[];
336}
337
338export class BinaryWriter {
339 constructor();
340 writeSerializedMessage(bytes: Uint8Array, start: number, end: number): void;
341 maybeWriteSerializedMessage(bytes?: Uint8Array, start?: number, end?: number): void;
342 reset(): void;
343 getResultBuffer(): Uint8Array;
344 getResultBase64String(): string;
345 beginSubMessage(field: number): void;
346 endSubMessage(field: number): void;
347 writeAny(fieldType: BinaryConstants.FieldType, field: number, value: AnyFieldType): void;
348 writeInt32(field: number, value?: number): void;
349 writeInt32String(field: number, value?: string): void;
350 writeInt64(field: number, value?: number): void;
351 writeInt64String(field: number, value?: string): void;
352 writeUint32(field: number, value?: number): void;
353 writeUint32String(field: number, value?: string): void;
354 writeUint64(field: number, value?: number): void;
355 writeUint64String(field: number, value?: string): void;
356 writeSint32(field: number, value?: number): void;
357 writeSint64(field: number, value?: number): void;
358 writeSint64String(field: number, value?: string): void;
359 writeFixed32(field: number, value?: number): void;
360 writeFixed64(field: number, value?: number): void;
361 writeFixed64String(field: number, value?: string): void;
362 writeSfixed32(field: number, value?: number): void;
363 writeSfixed64(field: number, value?: number): void;
364 writeSfixed64String(field: number, value?: string): void;
365 writeFloat(field: number, value?: number): void;
366 writeDouble(field: number, value?: number): void;
367 writeBool(field: number, value?: boolean): void;
368 writeEnum(field: number, value?: number): void;
369 writeString(field: number, value?: string): void;
370 writeBytes(field: number, value?: ByteSource): void;
371 writeMessage: BinaryWrite;
372 writeGroup(field: number, value: any, writeCallback: BinaryWriteCallback): void;
373 writeFixedHash64(field: number, value?: string): void;
374 writeVarintHash64(field: number, value?: string): void;
375 writeRepeatedInt32(field: number, value?: number[]): void;
376 writeRepeatedInt32String(field: number, value?: string[]): void;
377 writeRepeatedInt64(field: number, value?: number[]): void;
378 writeRepeatedInt64String(field: number, value?: string[]): void;
379 writeRepeatedUint32(field: number, value?: number[]): void;
380 writeRepeatedUint32String(field: number, value?: string[]): void;
381 writeRepeatedUint64(field: number, value?: number[]): void;
382 writeRepeatedUint64String(field: number, value?: string[]): void;
383 writeRepeatedSint32(field: number, value?: number[]): void;
384 writeRepeatedSint64(field: number, value?: number[]): void;
385 writeRepeatedSint64String(field: number, value?: string[]): void;
386 writeRepeatedFixed32(field: number, value?: number[]): void;
387 writeRepeatedFixed64(field: number, value?: number[]): void;
388 writeRepeatedFixed64String(field: number, value?: string[]): void;
389 writeRepeatedSfixed32(field: number, value?: number[]): void;
390 writeRepeatedSfixed64(field: number, value?: number[]): void;
391 writeRepeatedSfixed64String(field: number, value?: string[]): void;
392 writeRepeatedFloat(field: number, value?: number[]): void;
393 writeRepeatedDouble(field: number, value?: number[]): void;
394 writeRepeatedBool(field: number, value?: boolean[]): void;
395 writeRepeatedEnum(field: number, value?: number[]): void;
396 writeRepeatedString(field: number, value?: string[]): void;
397 writeRepeatedBytes(field: number, value?: ByteSource[]): void;
398 writeRepeatedMessage(field: number, value: Message[], writerCallback: BinaryWriteCallback): void;
399 writeRepeatedGroup(field: number, value: Message[], writerCallback: BinaryWriteCallback): void;
400 writeRepeatedFixedHash64(field: number, value?: string[]): void;
401 writeRepeatedVarintHash64(field: number, value?: string[]): void;
402 writePackedInt32(field: number, value?: number[]): void;
403 writePackedInt32String(field: number, value?: string[]): void;
404 writePackedInt64(field: number, value?: number[]): void;
405 writePackedInt64String(field: number, value?: string[]): void;
406 writePackedUint32(field: number, value?: number[]): void;
407 writePackedUint32String(field: number, value?: string[]): void;
408 writePackedUint64(field: number, value?: number[]): void;
409 writePackedUint64String(field: number, value?: string[]): void;
410 writePackedSint32(field: number, value?: number[]): void;
411 writePackedSint64(field: number, value?: number[]): void;
412 writePackedSint64String(field: number, value?: string[]): void;
413 writePackedFixed32(field: number, value?: number[]): void;
414 writePackedFixed64(field: number, value?: number[]): void;
415 writePackedFixed64String(field: number, value?: string[]): void;
416 writePackedSfixed32(field: number, value?: number[]): void;
417 writePackedSfixed64(field: number, value?: number[]): void;
418 writePackedSfixed64String(field: number, value?: string[]): void;
419 writePackedFloat(field: number, value?: number[]): void;
420 writePackedDouble(field: number, value?: number[]): void;
421 writePackedBool(field: number, value?: boolean[]): void;
422 writePackedEnum(field: number, value?: number[]): void;
423 writePackedFixedHash64(field: number, value?: string[]): void;
424 writePackedVarintHash64(field: number, value?: string[]): void;
425}
426
427export class BinaryEncoder {
428 constructor();
429 length(): number;
430 end(): number[];
431 writeSplitVarint64(lowBits: number, highBits: number): void;
432 writeSplitFixed64(lowBits: number, highBits: number): void;
433 writeUnsignedVarint32(value: number): void;
434 writeSignedVarint32(value: number): void;
435 writeUnsignedVarint64(value: number): void;
436 writeSignedVarint64(value: number): void;
437 writeZigzagVarint32(value: number): void;
438 writeZigzagVarint64(value: number): void;
439 writeZigzagVarint64String(value: string): void;
440 writeUint8(value: number): void;
441 writeUint16(value: number): void;
442 writeUint32(value: number): void;
443 writeUint64(value: number): void;
444 writeInt8(value: number): void;
445 writeInt16(value: number): void;
446 writeInt32(value: number): void;
447 writeInt64(value: number): void;
448 writeInt64String(value: string): void;
449 writeFloat(value: number): void;
450 writeDouble(value: number): void;
451 writeBool(value: boolean): void;
452 writeEnum(value: number): void;
453 writeBytes(bytes: Uint8Array): void;
454 writeVarintHash64(hash: string): void;
455 writeFixedHash64(hash: string): void;
456 writeString(value: string): number;
457}
458
459export class BinaryDecoder {
460 constructor(bytes?: ByteSource, start?: number, length?: number);
461 static alloc(bytes?: ByteSource, start?: number, length?: number): BinaryDecoder;
462 free(): void;
463 clone(): BinaryDecoder;
464 clear(): void;
465 getBuffer(): Uint8Array;
466 setBlock(data: ByteSource, start?: number, length?: number): void;
467 getEnd(): number;
468 setEnd(end: number): void;
469 reset(): void;
470 getCursor(): number;
471 setCursor(cursor: number): void;
472 advance(count: number): void;
473 atEnd(): boolean;
474 pastEnd(): boolean;
475 getError(): boolean;
476 skipVarint(): void;
477 unskipVarint(value: number): void;
478 readUnsignedVarint32(): number;
479 readSignedVarint32(): number;
480 readUnsignedVarint32String(): number;
481 readSignedVarint32String(): number;
482 readZigzagVarint32(): number;
483 readUnsignedVarint64(): number;
484 readUnsignedVarint64String(): number;
485 readSignedVarint64(): number;
486 readSignedVarint64String(): number;
487 readZigzagVarint64(): number;
488 readZigzagVarint64String(): number;
489 readUint8(): number;
490 readUint16(): number;
491 readUint32(): number;
492 readUint64(): number;
493 readUint64String(): string;
494 readInt8(): number;
495 readInt16(): number;
496 readInt32(): number;
497 readInt64(): number;
498 readInt64String(): string;
499 readFloat(): number;
500 readDouble(): number;
501 readBool(): boolean;
502 readEnum(): number;
503 readString(length: number): string;
504 readStringWithLength(): string;
505 readBytes(length: number): Uint8Array;
506 readVarintHash64(): string;
507 readFixedHash64(): string;
508}
509
510export class BinaryIterator {
511 constructor(
512 decoder?: BinaryDecoder,
513 next?: () => number | boolean | string | null,
514 elements?: Array<number | boolean | string>,
515 );
516 static alloc(
517 decoder?: BinaryDecoder,
518 next?: () => number | boolean | string | null,
519 elements?: Array<number | boolean | string>,
520 ): BinaryIterator;
521 free(): void;
522 clear(): void;
523 get(): ScalarFieldType | null;
524 atEnd(): boolean;
525 next(): ScalarFieldType | null;
526}
527
528export namespace BinaryConstants {
529 enum FieldType {
530 INVALID = -1,
531 DOUBLE = 1,
532 FLOAT = 2,
533 INT64 = 3,
534 UINT64 = 4,
535 INT32 = 5,
536 FIXED64 = 6,
537 FIXED32 = 7,
538 BOOL = 8,
539 STRING = 9,
540 GROUP = 10,
541 MESSAGE = 11,
542 BYTES = 12,
543 UINT32 = 13,
544 ENUM = 14,
545 SFIXED32 = 15,
546 SFIXED64 = 16,
547 SINT32 = 17,
548 SINT64 = 18,
549 FHASH64 = 30,
550 VHASH64 = 31,
551 }
552
553 enum WireType {
554 INVALID = -1,
555 VARINT = 0,
556 FIXED64 = 1,
557 DELIMITED = 2,
558 START_GROUP = 3,
559 END_GROUP = 4,
560 FIXED32 = 5,
561 }
562
563 const FieldTypeToWireType: (fieldType: FieldType) => WireType;
564
565 const INVALID_FIELD_NUMBER: number;
566 const FLOAT32_EPS: number;
567 const FLOAT32_MIN: number;
568 const FLOAT32_MAX: number;
569 const FLOAT64_EPS: number;
570 const FLOAT64_MIN: number;
571 const FLOAT64_MAX: number;
572 const TWO_TO_20: number;
573 const TWO_TO_23: number;
574 const TWO_TO_31: number;
575 const TWO_TO_32: number;
576 const TWO_TO_52: number;
577 const TWO_TO_63: number;
578 const TWO_TO_64: number;
579 const ZERO_HASH: string;
580}
581
582export namespace arith {
583 class UInt64 {
584 lo: number;
585 hi: number;
586 constructor(lo: number, hi: number);
587 cmp(other: UInt64): number;
588 rightShift(): UInt64;
589 leftShift(): UInt64;
590 msb(): boolean;
591 lsb(): boolean;
592 zero(): boolean;
593 add(other: UInt64): UInt64;
594 sub(other: UInt64): UInt64;
595 static mul32x32(a: number, b: number): UInt64;
596 mul(a: number): UInt64;
597 div(divisor: number): [UInt64, UInt64];
598 toString(): string;
599 static fromString(str: string): UInt64;
600 clone(): UInt64;
601 }
602
603 class Int64 {
604 lo: number;
605 hi: number;
606 constructor(lo: number, hi: number);
607 add(other: Int64): Int64;
608 sub(other: Int64): Int64;
609 clone(): Int64;
610 toString(): string;
611 static fromString(str: string): Int64;
612 }
613}
614
615// jspb.utils package excluded as it likely shouldn't be called by user code