1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | declare namespace ProtoBuf {
|
10 |
|
11 |
|
12 |
|
13 | var Builder: Builder;
|
14 | var Long: LongStatic;
|
15 | var DotProto: DotProto;
|
16 | var Reflect: Reflect;
|
17 | var Util: Util;
|
18 |
|
19 |
|
20 |
|
21 | export function loadJson(json: string, builder?: ProtoBuilder | string | {},
|
22 | filename?: string | {}): ProtoBuilder;
|
23 |
|
24 | export function loadJsonFile(filename: string | {},
|
25 | callback?: (error: any, builder: ProtoBuilder) => void,
|
26 | builder?: ProtoBuilder): ProtoBuilder;
|
27 |
|
28 | export function loadProto(proto: string, builder?: ProtoBuilder | string | {},
|
29 | filename?: string | {}): ProtoBuilder;
|
30 |
|
31 | export function loadProtoFile(filePath: string | {},
|
32 | callback?: (error: any, builder: ProtoBuilder) => void,
|
33 | builder?: ProtoBuilder): ProtoBuilder;
|
34 |
|
35 | export function newBuilder(options?: {[key: string]: any}): ProtoBuilder;
|
36 |
|
37 | export interface LongStatic {
|
38 | new(low?: number, high?: number, unsigned?:boolean): Long;
|
39 |
|
40 | MAX_UNSIGNED_VALUE: Long;
|
41 | MAX_VALUE: Long;
|
42 | MIN_VALUE: Long;
|
43 | NEG_ONE: Long;
|
44 | ONE: Long;
|
45 | UONE: Long;
|
46 | UZERO: Long;
|
47 | ZERO: Long;
|
48 |
|
49 | fromBits(lowBits: number, highBits: number, unsigned?: boolean): Long;
|
50 | fromInt(value: number, unsigned?: boolean): Long;
|
51 | fromNumber(value: number, unsigned?: boolean): Long;
|
52 | fromString(str: string, unsigned?: boolean | number, radix?: number): Long;
|
53 | fromValue(val: Long | number | string): Long;
|
54 |
|
55 | isLong(obj: any): boolean;
|
56 | }
|
57 |
|
58 |
|
59 | export interface Long {
|
60 | high: number;
|
61 | low: number;
|
62 | unsigned :boolean;
|
63 |
|
64 | add(other: Long | number | string): Long;
|
65 | and(other: Long | number | string): Long;
|
66 | compare(other: Long | number | string): number;
|
67 | div(divisor: Long | number | string): Long;
|
68 | equals(other: Long | number | string): boolean;
|
69 | getHighBits(): number;
|
70 | getHighBitsUnsigned(): number;
|
71 | getLowBits(): number;
|
72 | getLowBitsUnsigned(): number;
|
73 | getNumBitsAbs(): number;
|
74 | greaterThan(other: Long | number | string): boolean;
|
75 | greaterThanOrEqual(other: Long | number | string): boolean;
|
76 | isEven(): boolean;
|
77 | isNegative(): boolean;
|
78 | isOdd(): boolean;
|
79 | isPositive(): boolean;
|
80 | isZero(): boolean;
|
81 | lessThan(other: Long | number | string): boolean;
|
82 | lessThanOrEqual(other: Long | number | string): boolean;
|
83 | modulo(divisor: Long | number | string): Long;
|
84 | multiply(multiplier: Long | number | string): Long;
|
85 | negate(): Long;
|
86 | not(): Long;
|
87 | notEquals(other: Long | number | string): boolean;
|
88 | or(other: Long | number | string): Long;
|
89 | shiftLeft(numBits: number | Long): Long;
|
90 | shiftRight(numBits: number | Long): Long;
|
91 | shiftRightUnsigned(numBits: number | Long): Long;
|
92 | subtract(other: Long | number | string): Long;
|
93 | toInt(): number;
|
94 | toNumber(): number;
|
95 | toSigned(): Long;
|
96 | toString(radix?: number): string;
|
97 | toUnsigned(): Long;
|
98 | xor(other: Long | number | string): Long;
|
99 | }
|
100 |
|
101 |
|
102 |
|
103 |
|
104 | export interface Builder {
|
105 | new(options?: {[key: string]: any}): ProtoBuilder;
|
106 | Message: Message;
|
107 | Service: Service;
|
108 | isValidMessage(def: {[key: string]: any}): boolean;
|
109 | isValidMessageField(def: {[key: string]: any}): boolean;
|
110 | isValidEnum(def: {[key: string]: any}): boolean;
|
111 | isValidService(def: {[key: string]: any}): boolean;
|
112 | isValidExtend(def: {[key: string]: any}): boolean;
|
113 | }
|
114 |
|
115 | |
116 |
|
117 |
|
118 | export interface Message {
|
119 | new(values?: {[key: string]: any}, var_args?: string[]): Message;
|
120 | $add(key: string, value: any, noAssert?: boolean): Message;
|
121 | $get<T>(key: string): T;
|
122 | $set(key: string | {[key: string]: any}, value?: any | boolean, noAssert?: boolean): void;
|
123 | add(key: string, value: any, noAssert?: boolean): Message;
|
124 | calculate(): number;
|
125 | encode(buffer?: ByteBuffer | boolean, noVerify?: boolean): ByteBuffer;
|
126 | encode64(): string;
|
127 | encodeAB(): ArrayBuffer;
|
128 | encodeNB(): Buffer;
|
129 | encodeHex(): string;
|
130 | encodeJSON(): string;
|
131 | encodeDelimited(buffer?: ByteBuffer | boolean, noVerify?: boolean): ByteBuffer;
|
132 | get<T>(key: string, noAssert?: boolean): T;
|
133 | set(key: string | {[key: string]: any}, value?: any | boolean, noAssert?: boolean): void;
|
134 | toArrayBuffer(): ArrayBuffer;
|
135 | toBase64(): string;
|
136 | toBuffer(): Buffer;
|
137 | toHex(): string;
|
138 | toRaw(binaryAsBase64?: boolean, longsAsStrings?: boolean): {[key: string]: any};
|
139 | toString(): string;
|
140 | [field: string]: any;
|
141 | }
|
142 |
|
143 | |
144 |
|
145 |
|
146 | export interface Service {
|
147 | new(rpcImpl?: Function): Service;
|
148 | }
|
149 |
|
150 |
|
151 |
|
152 |
|
153 |
|
154 | export interface ProtoBuilder {
|
155 | ns: ReflectNamespace;
|
156 | ptr: ReflectNamespace;
|
157 | resolved: boolean;
|
158 | result: ProtoBuf;
|
159 | files: string[];
|
160 | importRoot: string;
|
161 | options: {[key: string]: any};
|
162 | syntax: string;
|
163 | reset(): void;
|
164 | define(pkg: string, options?: {[key: string]: any}): ProtoBuilder;
|
165 | create(defs?: {[key: string]: any}[]): ProtoBuilder;
|
166 | resolveAll(): void;
|
167 | build(path?: string | [string]): MetaMessage<Message>;
|
168 | build<T>(path?: string | [string]): MetaMessage<T>;
|
169 | lookup(path?: string): ReflectT;
|
170 | }
|
171 |
|
172 | export interface ProtoBuf {
|
173 | [package: string]: {[key: string]: MetaMessage<Message> | any};
|
174 | }
|
175 |
|
176 | export interface MetaMessage<T> {
|
177 | new(values?: {[key: string]: any}, var_args?: string[]): T & Message;
|
178 | decode(buffer: ArrayBuffer | ByteBuffer | Buffer | string, length?: number | string, enc?: string): T & Message;
|
179 | decodeDelimited(buffer: ByteBuffer | ArrayBuffer | Buffer | string, enc?: string): T & Message;
|
180 | decode64(str: string): T & Message;
|
181 | decodeHex(str: string): T & Message;
|
182 | decodeJSON(str: string): T & Message;
|
183 | }
|
184 |
|
185 |
|
186 |
|
187 |
|
188 | export interface DotProto {
|
189 | Parser: Parser;
|
190 | Tokenizer: Tokenizer;
|
191 | }
|
192 |
|
193 | export interface Parser {
|
194 | new(proto: string): Parser;
|
195 | tn: Tokenizer;
|
196 | parse(): MetaProto;
|
197 | toString(): string;
|
198 | }
|
199 |
|
200 | export interface Tokenizer {
|
201 | new(proto: string): Tokenizer;
|
202 | source: string;
|
203 | index: number;
|
204 | line: number;
|
205 | stack: string[];
|
206 | readingString: boolean;
|
207 | stringEndsWith: string;
|
208 | next(): string;
|
209 | peek(): string;
|
210 | toString(): string;
|
211 | }
|
212 |
|
213 |
|
214 |
|
215 |
|
216 | export interface MetaProto {
|
217 | package: string;
|
218 | messages: ProtoMessage[];
|
219 | enums: ProtoEnum[];
|
220 | imports: string[];
|
221 | options: {[key: string]: any};
|
222 | services: ProtoService[];
|
223 | }
|
224 |
|
225 | export interface ProtoEnum {
|
226 | name: string;
|
227 | values: ProtoEnumValue;
|
228 | options: {[key: string]: any};
|
229 | }
|
230 |
|
231 | export interface ProtoEnumValue {
|
232 | name: string;
|
233 | id: string;
|
234 | }
|
235 |
|
236 | export interface ProtoField {
|
237 | rule: string;
|
238 | options: {[key: string]: any};
|
239 | type: string;
|
240 | name: string;
|
241 | id: number;
|
242 | oneof?: string;
|
243 | }
|
244 |
|
245 | export interface ProtoMessage {
|
246 | name: string;
|
247 | isGroup?: boolean;
|
248 | fields: ProtoField[];
|
249 | enums: ProtoEnum[];
|
250 | messages: ProtoMessage[];
|
251 | options: {[key: string]: any};
|
252 | oneofs: {[key: string]:number[]};
|
253 | }
|
254 |
|
255 | export interface ProtoRpcService {
|
256 | request: string;
|
257 | response: string;
|
258 | options: {[key: string]: any};
|
259 | }
|
260 |
|
261 | export interface ProtoService {
|
262 | name: string;
|
263 | rpc: {[key: string]:ProtoRpcService};
|
264 | options: {[key: string]: any};
|
265 | }
|
266 |
|
267 |
|
268 |
|
269 |
|
270 | export interface Util {
|
271 | IS_NODE: boolean
|
272 | fetch(path: string, callback?: (data: string) => any): string;
|
273 | toCamelCase(str: string): string;
|
274 | XHR(): XMLHttpRequest;
|
275 | }
|
276 |
|
277 |
|
278 |
|
279 |
|
280 | export interface Reflect {
|
281 | T: ReflectT;
|
282 | Namespace: ReflectNamespace;
|
283 | Message: ReflectMessage;
|
284 | Enum: ReflectEnum;
|
285 | Extension: ReflectExtension;
|
286 | Service: ReflectService;
|
287 | }
|
288 |
|
289 | export interface ReflectT {
|
290 | new(builder?: ProtoBuilder, parent?: ReflectT, name?: string): ReflectT;
|
291 | builder: ProtoBuilder;
|
292 | parent: ReflectT;
|
293 | name: string;
|
294 | fqn(): string;
|
295 | toString(includeClass?: boolean): string;
|
296 | }
|
297 |
|
298 | export interface ReflectNamespace extends ReflectT {
|
299 | new(builder?: ProtoBuilder, parent?: ReflectNamespace, name?: string,
|
300 | options?: {[key: string]: any}): ReflectNamespace;
|
301 | className: string;
|
302 | children: ReflectT[];
|
303 | options: {[key: string]: any};
|
304 | syntax: string;
|
305 | getChildren(type?: ReflectT): ReflectT[];
|
306 | addChild(child: ReflectT): void;
|
307 | getChild(nameOrId?: string | number): ReflectT;
|
308 | resolve(qn: string, excludeFields?: boolean): ReflectNamespace;
|
309 | build(): ProtoBuf;
|
310 | buildOpt(): {[key: string]: any};
|
311 | getOption(name?: string): any;
|
312 | }
|
313 |
|
314 | export interface ReflectMessage extends ReflectNamespace {
|
315 | new(builder?: ProtoBuilder, parent?: ReflectNamespace, name?: string,
|
316 | options?: {[key: string]: any}, isGroup?: boolean): ReflectMessage;
|
317 | Field: ReflectField;
|
318 | ExtensionField: ReflectExtensionField;
|
319 |
|
320 | OneOf: ReflectOneOf;
|
321 | extensions: number[];
|
322 | clazz(): MetaMessage<Message>;
|
323 | isGroup: boolean;
|
324 | build(rebuild?: boolean): MetaMessage<Message>|any;
|
325 | build<T>(rebuild?: boolean): MetaMessage<T>|any;
|
326 | encode(message: Message, buffer: Buffer, noVerify?: boolean): Buffer;
|
327 | calculate(message: Message): number;
|
328 | decode(buffer: Buffer, length?: number, expectedGroupEndId?: number): Message;
|
329 | }
|
330 |
|
331 | export interface ReflectEnum extends ReflectNamespace {
|
332 | new(builder?: ProtoBuilder, parent?: ReflectT, name?: string,
|
333 | options?: {[key: string]: any}): ReflectEnum;
|
334 | Value: ReflectValue;
|
335 | object: {[key: string]:number};
|
336 | build(): {[key: string]: any};
|
337 | }
|
338 |
|
339 | export interface ReflectExtension extends ReflectT {
|
340 | new(builder?: ProtoBuilder, parent?: ReflectT, name?: string,
|
341 | field?: ReflectField): ReflectExtension;
|
342 | field: ReflectField;
|
343 | }
|
344 |
|
345 | export interface ReflectService extends ReflectNamespace {
|
346 | new(): ReflectService;
|
347 | Method: ReflectMethod;
|
348 | RPCMethod: ReflectRPCMethod;
|
349 | clazz(): Function;
|
350 | build(rebuild?: boolean): Function|any;
|
351 | }
|
352 |
|
353 |
|
354 | export interface ReflectField extends ReflectT {
|
355 | new(builder: ProtoBuilder, message: ReflectMessage, rule: string, type: string,
|
356 | name: string, id: number, options: {[key: string]: any}, oneof: ReflectOneOf): ReflectField;
|
357 | className: string;
|
358 | required: boolean;
|
359 | repeated: boolean;
|
360 | type: string | WireTuple;
|
361 | resolvedType: ReflectT;
|
362 | id: number;
|
363 | options: {[key: string]: any};
|
364 | defaultValue: any;
|
365 | oneof: ReflectOneOf;
|
366 | originalName: string;
|
367 | build(): {[key: string]: any};
|
368 | mkLong(value: any, unsigned?: boolean): number;
|
369 | verifyValue(value: any, skipRepeated?: boolean): any;
|
370 | encode(value: any, buffer: Buffer): Buffer;
|
371 | encodeValue(value: any, buffer: Buffer): Buffer;
|
372 | calculate(value: any): number;
|
373 | calculateValue(value: any): number;
|
374 | decode(wireType: number, buffer: Buffer, skipRepeated?: boolean): any;
|
375 | }
|
376 |
|
377 | export interface WireTuple {
|
378 | name: string;
|
379 | wireType: number;
|
380 | }
|
381 |
|
382 |
|
383 | export interface ReflectExtensionField extends ReflectField {
|
384 | new(builder: ProtoBuilder, message: ReflectMessage, rule: string, type: string,
|
385 | name: string, id: number, options: {[key: string]: any}): ReflectExtensionField;
|
386 | extension: ReflectExtension;
|
387 | }
|
388 |
|
389 | export interface ReflectOneOf extends ReflectT {
|
390 | new(builder?: ProtoBuilder, message?: ReflectMessage, name?: string): ReflectOneOf;
|
391 | fields: ReflectField[];
|
392 | }
|
393 |
|
394 | export interface ReflectValue extends ReflectT {
|
395 | new(builder?: ProtoBuilder, enm?: ReflectEnum, name?: string, id?: number): ReflectValue;
|
396 | className: string;
|
397 | id: number;
|
398 | }
|
399 |
|
400 | export interface ReflectMethod extends ReflectT {
|
401 | new(builder?: ProtoBuilder, svc?: ReflectService, name?: string,
|
402 | options?: {[key: string]: any}): ReflectMethod;
|
403 | className: string;
|
404 | options: {[key: string]: any};
|
405 | buildOpt(): {[key: string]: any};
|
406 | }
|
407 |
|
408 | export interface ReflectRPCMethod extends ReflectMethod {
|
409 | new(builder?: ProtoBuilder, svc?: ReflectService, name?: string, request?: string,
|
410 | response?: string, options?: {[key: string]: any}): ReflectRPCMethod;
|
411 | requestName: string;
|
412 | responseName: string;
|
413 | resolvedRequestType: ReflectMessage;
|
414 | resolvedResponseType: ReflectMessage;
|
415 | }
|
416 |
|
417 | }
|
418 |
|
419 | declare module "protobufjs" {
|
420 | export = ProtoBuf;
|
421 | }
|
422 |
|
423 | declare module "protobufjs/dist/protobuf-light" {
|
424 | export = ProtoBuf;
|
425 | }
|