UNPKG

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