UNPKG

45.1 kBTypeScriptView Raw
1interface URLS {
2 resetPassword: (token: string) => string;
3 verifyEmail: (token: string) => string;
4 enrollAccount: (token: string) => string;
5}
6
7declare module Accounts {
8 var urls: URLS;
9
10 function user(): Meteor.User;
11
12 function userId(): string;
13
14 function createUser(options: {
15 username?: string;
16 email?: string;
17 password?: string;
18 profile?: Object;
19 }, callback?: Function): string;
20
21 function config(options: {
22 sendVerificationEmail?: boolean;
23 forbidClientAccountCreation?: boolean;
24 restrictCreationByEmailDomain?: string | Function;
25 loginExpirationInDays?: number;
26 oauthSecretKey?: string;
27 }): void;
28
29 function onLogin(func: Function): {
30 stop: () => void
31 };
32
33 function onLoginFailure(func: Function): {
34 stop: () => void
35 };
36
37 function loginServicesConfigured(): boolean;
38
39 function onPageLoadLogin(func: Function): void;
40}
41
42declare module "meteor/accounts-base" {
43 interface URLS {
44 resetPassword: (token: string) => string;
45 verifyEmail: (token: string) => string;
46 enrollAccount: (token: string) => string;
47 }
48
49 module Accounts {
50 var urls: URLS;
51
52 function user(): Meteor.User;
53
54 function userId(): string;
55
56 function createUser(options: {
57 username?: string;
58 email?: string;
59 password?: string;
60 profile?: Object;
61 }, callback?: Function): string;
62
63 function config(options: {
64 sendVerificationEmail?: boolean;
65 forbidClientAccountCreation?: boolean;
66 restrictCreationByEmailDomain?: string | Function;
67 loginExpirationInDays?: number;
68 oauthSecretKey?: string;
69 }): void;
70
71 function onLogin(func: Function): {
72 stop: () => void
73 };
74
75 function onLoginFailure(func: Function): {
76 stop: () => void
77 };
78
79 function loginServicesConfigured(): boolean;
80
81 function onPageLoadLogin(func: Function): void;
82 }
83}
84
85declare module Accounts {
86 function changePassword(oldPassword: string, newPassword: string, callback?: Function): void;
87
88 function forgotPassword(options: {
89 email?: string;
90 }, callback?: Function): void;
91
92 function resetPassword(token: string, newPassword: string, callback?: Function): void;
93
94 function verifyEmail(token: string, callback?: Function): void;
95
96 function onEmailVerificationLink(callback: Function): void;
97
98 function onEnrollmentLink(callback: Function): void;
99
100 function onResetPasswordLink(callback: Function): void;
101
102 function loggingIn(): boolean;
103
104 function logout(callback?: Function): void;
105
106 function logoutOtherClients(callback?: Function): void;
107
108 var ui: {
109 config(options: {
110 requestPermissions?: Object;
111 requestOfflineToken?: Object;
112 forceApprovalPrompt?: Object;
113 passwordSignupFields?: string;
114 }): void;
115 };
116}
117
118declare module "meteor/accounts-base" {
119 module Accounts {
120 function changePassword(oldPassword: string, newPassword: string, callback?: Function): void;
121
122 function forgotPassword(options: {
123 email?: string;
124 }, callback?: Function): void;
125
126 function resetPassword(token: string, newPassword: string, callback?: Function): void;
127
128 function verifyEmail(token: string, callback?: Function): void;
129
130 function onEmailVerificationLink(callback: Function): void;
131
132 function onEnrollmentLink(callback: Function): void;
133
134 function onResetPasswordLink(callback: Function): void;
135
136 function loggingIn(): boolean;
137
138 function logout(callback?: Function): void;
139
140 function logoutOtherClients(callback?: Function): void;
141
142 var ui: {
143 config(options: {
144 requestPermissions?: Object;
145 requestOfflineToken?: Object;
146 forceApprovalPrompt?: Object;
147 passwordSignupFields?: string;
148 }): void;
149 };
150 }
151}
152
153declare module Blaze {
154 var View: ViewStatic;
155
156 interface ViewStatic {
157 new(name?: string, renderFunction?: Function): View;
158 }
159
160 interface View {
161 name: string;
162 parentView: View;
163 isCreated: boolean;
164 isRendered: boolean;
165 isDestroyed: boolean;
166 renderCount: number;
167 autorun(runFunc: (computation: Tracker.Computation) => void): Tracker.Computation;
168 onViewCreated(func: Function): void;
169 onViewReady(func: Function): void;
170 onViewDestroyed(func: Function): void;
171 firstNode(): Node;
172 lastNode(): Node;
173 template: Template;
174 templateInstance(): TemplateInstance;
175 }
176 var currentView: View;
177
178 function isTemplate(value: any): boolean;
179
180 interface HelpersMap {
181 [key: string]: Function;
182 }
183
184 interface EventsMap {
185 [key: string]: Function;
186 }
187
188 var Template: TemplateStatic;
189
190 interface TemplateStatic {
191 new(viewName?: string, renderFunction?: Function): Template;
192
193 registerHelper(name: string, func: Function): void;
194 instance(): TemplateInstance;
195 currentData(): any;
196 parentData(numLevels: number): any;
197 }
198
199 interface Template {
200 viewName: string;
201 renderFunction: Function;
202 constructView(): View;
203 head: Template;
204 find(selector: string): HTMLElement;
205 findAll(selector: string): HTMLElement[];
206 $: any;
207 onCreated(cb: Function): void;
208 onRendered(cb: Function): void;
209 onDestroyed(cb: Function): void;
210 created: Function;
211 rendered: Function;
212 destroyed: Function;
213 helpers(helpersMap: HelpersMap): void;
214 events(eventsMap: EventsMap): void;
215 }
216
217 var TemplateInstance: TemplateInstanceStatic;
218
219 interface TemplateInstanceStatic {
220 new(view: View): TemplateInstance;
221 }
222
223 interface TemplateInstance {
224 $(selector: string): any;
225 autorun(runFunc: (computation: Tracker.Computation) => void): Tracker.Computation;
226 data: Object;
227 find(selector: string): HTMLElement;
228 findAll(selector: string): HTMLElement[];
229 firstNode: Object;
230 lastNode: Object;
231 subscribe(name: string, ...args: any[]): Meteor.SubscriptionHandle;
232 subscriptionsReady(): boolean;
233 view: Object;
234 }
235
236 function Each(argFunc: Function, contentFunc: Function, elseFunc?: Function): View;
237
238 function Unless(conditionFunc: Function, contentFunc: Function, elseFunc?: Function): View;
239
240 function If(conditionFunc: Function, contentFunc: Function, elseFunc?: Function): View;
241
242 function Let(bindings: Function, contentFunc: Function): View;
243
244 function With(data: Object | Function, contentFunc: Function): View;
245
246 function getData(elementOrView?: HTMLElement | View): Object;
247
248 function getView(element?: HTMLElement): View;
249
250 function remove(renderedView: View): void;
251
252 function render(templateOrView: Template | View, parentNode: Node, nextNode?: Node, parentView?: View): View;
253
254 function renderWithData(templateOrView: Template | View, data: Object | Function, parentNode: Node, nextNode?: Node, parentView?: View): View;
255
256 function toHTML(templateOrView: Template | View): string;
257
258 function toHTMLWithData(templateOrView: Template | View, data: Object | Function): string;
259}
260
261declare module "meteor/blaze" {
262 module Blaze {
263 var View: ViewStatic;
264
265 interface ViewStatic {
266 new(name?: string, renderFunction?: Function): View;
267 }
268
269 interface View {
270 name: string;
271 parentView: View;
272 isCreated: boolean;
273 isRendered: boolean;
274 isDestroyed: boolean;
275 renderCount: number;
276 autorun(runFunc: (computation: Tracker.Computation) => void): Tracker.Computation;
277 onViewCreated(func: Function): void;
278 onViewReady(func: Function): void;
279 onViewDestroyed(func: Function): void;
280 firstNode(): Node;
281 lastNode(): Node;
282 template: Template;
283 templateInstance(): TemplateInstance;
284 }
285 var currentView: View;
286
287 function isTemplate(value: any): boolean;
288
289 interface HelpersMap {
290 [key: string]: Function;
291 }
292
293 interface EventsMap {
294 [key: string]: Function;
295 }
296
297 var Template: TemplateStatic;
298
299 interface TemplateStatic {
300 new(viewName?: string, renderFunction?: Function): Template;
301
302 registerHelper(name: string, func: Function): void;
303 instance(): TemplateInstance;
304 currentData(): any;
305 parentData(numLevels: number): any;
306 }
307
308 interface Template {
309 viewName: string;
310 renderFunction: Function;
311 constructView(): View;
312 head: Template;
313 find(selector: string): HTMLElement;
314 findAll(selector: string): HTMLElement[];
315 $: any;
316 onCreated(cb: Function): void;
317 onRendered(cb: Function): void;
318 onDestroyed(cb: Function): void;
319 created: Function;
320 rendered: Function;
321 destroyed: Function;
322 helpers(helpersMap: HelpersMap): void;
323 events(eventsMap: EventsMap): void;
324 }
325
326 var TemplateInstance: TemplateInstanceStatic;
327
328 interface TemplateInstanceStatic {
329 new(view: View): TemplateInstance;
330 }
331
332 interface TemplateInstance {
333 $(selector: string): any;
334 autorun(runFunc: (computation: Tracker.Computation) => void): Tracker.Computation;
335 data: Object;
336 find(selector: string): HTMLElement;
337 findAll(selector: string): HTMLElement[];
338 firstNode: Object;
339 lastNode: Object;
340 subscribe(name: string, ...args: any[]): Meteor.SubscriptionHandle;
341 subscriptionsReady(): boolean;
342 view: Object;
343 }
344
345 function Each(argFunc: Function, contentFunc: Function, elseFunc?: Function): View;
346
347 function Unless(conditionFunc: Function, contentFunc: Function, elseFunc?: Function): View;
348
349 function If(conditionFunc: Function, contentFunc: Function, elseFunc?: Function): View;
350
351 function Let(bindings: Function, contentFunc: Function): View;
352
353 function With(data: Object | Function, contentFunc: Function): View;
354
355 function getData(elementOrView?: HTMLElement | View): Object;
356
357 function getView(element?: HTMLElement): View;
358
359 function remove(renderedView: View): void;
360
361 function render(templateOrView: Template | View, parentNode: Node, nextNode?: Node, parentView?: View): View;
362
363 function renderWithData(templateOrView: Template | View, data: Object | Function, parentNode: Node, nextNode?: Node, parentView?: View): View;
364
365 function toHTML(templateOrView: Template | View): string;
366
367 function toHTMLWithData(templateOrView: Template | View, data: Object | Function): string;
368 }
369}
370
371declare module BrowserPolicy {
372 var framing: {
373 disallow(): void;
374 restrictToOrigin(origin: string): void;
375 allowAll(): void;
376 };
377
378 var content: {
379 allowEval(): void;
380 allowInlineStyles(): void;
381 allowInlineScripts(): void;
382 allowSameOriginForAll(): void;
383 allowDataUrlForAll(): void;
384 allowOriginForAll(origin: string): void;
385 allowImageOrigin(origin: string): void;
386 allowMediaOrigin(origin: string): void;
387 allowFontOrigin(origin: string): void;
388 allowStyleOrigin(origin: string): void;
389 allowScriptOrigin(origin: string): void;
390 allowFrameOrigin(origin: string): void;
391 allowContentTypeSniffing(): void;
392 allowAllContentOrigin(): void;
393 allowAllContentDataUrl(): void;
394 allowAllContentSameOrigin(): void;
395
396 disallowAll(): void;
397 disallowInlineStyles(): void;
398 disallowEval(): void;
399 disallowInlineScripts(): void;
400 disallowFont(): void;
401 disallowObject(): void;
402 disallowAllContent(): void;
403 };
404}
405
406declare module "meteor/browser-policy-common" {
407 module BrowserPolicy {
408 var framing: {
409 disallow(): void;
410 restrictToOrigin(origin: string): void;
411 allowAll(): void;
412 };
413
414 var content: {
415 allowEval(): void;
416 allowInlineStyles(): void;
417 allowInlineScripts(): void;
418 allowSameOriginForAll(): void;
419 allowDataUrlForAll(): void;
420 allowOriginForAll(origin: string): void;
421 allowImageOrigin(origin: string): void;
422 allowMediaOrigin(origin: string): void;
423 allowFontOrigin(origin: string): void;
424 allowStyleOrigin(origin: string): void;
425 allowScriptOrigin(origin: string): void;
426 allowFrameOrigin(origin: string): void;
427 allowContentTypeSniffing(): void;
428 allowAllContentOrigin(): void;
429 allowAllContentDataUrl(): void;
430 allowAllContentSameOrigin(): void;
431
432 disallowAll(): void;
433 disallowInlineStyles(): void;
434 disallowEval(): void;
435 disallowInlineScripts(): void;
436 disallowFont(): void;
437 disallowObject(): void;
438 disallowAllContent(): void;
439 };
440 }
441}
442
443declare module Match {
444 var Any: any;
445 var String: any;
446 var Integer: any;
447 var Boolean: any;
448 var undefined: any;
449 var Object: any;
450
451 function Optional(pattern: any): boolean;
452
453 function ObjectIncluding(dico: any): boolean;
454
455 function OneOf(...patterns: any[]): any;
456
457 function Where(condition: any): any;
458
459 function test(value: any, pattern: any): boolean;
460}
461
462declare function check(value: any, pattern: any): void;
463
464declare module "meteor/check" {
465 module Match {
466 var Any: any;
467 var String: any;
468 var Integer: any;
469 var Boolean: any;
470 var undefined: any;
471 var Object: any;
472
473 function Optional(pattern: any): boolean;
474
475 function ObjectIncluding(dico: any): boolean;
476
477 function OneOf(...patterns: any[]): any;
478
479 function Where(condition: any): any;
480
481 function test(value: any, pattern: any): boolean;
482 }
483
484 function check(value: any, pattern: any): void;
485}
486
487declare module DDP {
488 interface DDPStatic {
489 subscribe(name: string, ...rest: any[]): Meteor.SubscriptionHandle;
490 call(method: string, ...parameters: any[]): void;
491 apply(method: string, ...parameters: any[]): void;
492 methods(IMeteorMethodsDictionary: any): any;
493 status(): DDPStatus;
494 reconnect(): void;
495 disconnect(): void;
496 onReconnect(): void;
497 }
498
499 function _allSubscriptionsReady(): boolean;
500
501 type Status = 'connected' | 'connecting' | 'failed' | 'waiting' | 'offline';
502
503 interface DDPStatus {
504 connected: boolean;
505 status: Status;
506 retryCount: number;
507 retryTime?: number;
508 reason?: string;
509 }
510
511 function connect(url: string): DDPStatic;
512}
513
514declare module DDPCommon {
515 interface MethodInvocation {
516 new(options: {}): MethodInvocation;
517
518 unblock(): void;
519
520 setUserId(userId: number): void;
521 }
522}
523
524declare module "meteor/ddp" {
525 module DDP {
526 interface DDPStatic {
527 subscribe(name: string, ...rest: any[]): Meteor.SubscriptionHandle;
528 call(method: string, ...parameters: any[]): void;
529 apply(method: string, ...parameters: any[]): void;
530 methods(IMeteorMethodsDictionary: any): any;
531 status(): DDPStatus;
532 reconnect(): void;
533 disconnect(): void;
534 onReconnect(): void;
535 }
536
537 function _allSubscriptionsReady(): boolean;
538
539 type Status = 'connected' | 'connecting' | 'failed' | 'waiting' | 'offline';
540
541 interface DDPStatus {
542 connected: boolean;
543 status: Status;
544 retryCount: number;
545 retryTime?: number;
546 reason?: string;
547 }
548
549 function connect(url: string): DDPStatic;
550 }
551
552 module DDPCommon {
553 interface MethodInvocation {
554 new(options: {}): MethodInvocation;
555
556 unblock(): void;
557
558 setUserId(userId: number): void;
559 }
560 }
561}
562
563interface EJSONableCustomType {
564 clone(): EJSONableCustomType;
565 equals(other: Object): boolean;
566 toJSONValue(): JSONable;
567 typeName(): string;
568}
569interface EJSONable {
570 [key: string]: number | string | boolean | Object | number[] | string[] | Object[] | Date | Uint8Array | EJSONableCustomType;
571}
572interface JSONable {
573 [key: string]: number | string | boolean | Object | number[] | string[] | Object[];
574}
575interface EJSON extends EJSONable {}
576
577declare module EJSON {
578 function addType(name: string, factory: (val: JSONable) => EJSONableCustomType): void;
579
580 function clone < T > (val: T): T;
581
582 function equals(a: EJSON, b: EJSON, options?: {
583 keyOrderSensitive?: boolean;
584 }): boolean;
585
586 function fromJSONValue(val: JSONable): any;
587
588 function isBinary(x: Object): boolean;
589 var newBinary: any;
590
591 function parse(str: string): EJSON;
592
593 function stringify(val: EJSON, options?: {
594 indent?: boolean | number | string;
595 canonical?: boolean;
596 }): string;
597
598 function toJSONValue(val: EJSON): JSONable;
599}
600
601declare module "meteor/ejson" {
602 interface EJSONableCustomType {
603 clone(): EJSONableCustomType;
604 equals(other: Object): boolean;
605 toJSONValue(): JSONable;
606 typeName(): string;
607 }
608 interface EJSONable {
609 [key: string]: number | string | boolean | Object | number[] | string[] | Object[] | Date | Uint8Array | EJSONableCustomType;
610 }
611 interface JSONable {
612 [key: string]: number | string | boolean | Object | number[] | string[] | Object[];
613 }
614 interface EJSON extends EJSONable {}
615
616 module EJSON {
617 function addType(name: string, factory: (val: JSONable) => EJSONableCustomType): void;
618
619 function clone < T > (val: T): T;
620
621 function equals(a: EJSON, b: EJSON, options?: {
622 keyOrderSensitive?: boolean;
623 }): boolean;
624
625 function fromJSONValue(val: JSONable): any;
626
627 function isBinary(x: Object): boolean;
628 var newBinary: any;
629
630 function parse(str: string): EJSON;
631
632 function stringify(val: EJSON, options?: {
633 indent?: boolean | number | string;
634 canonical?: boolean;
635 }): string;
636
637 function toJSONValue(val: EJSON): JSONable;
638 }
639}
640
641declare module HTTP {
642 interface HTTPRequest {
643 content?: string;
644 data?: any;
645 query?: string;
646 params?: {
647 [id: string]: string
648 };
649 auth?: string;
650 headers?: {
651 [id: string]: string
652 };
653 timeout?: number;
654 followRedirects?: boolean;
655 npmRequestOptions?: Object;
656 }
657
658 interface HTTPResponse {
659 statusCode?: number;
660 headers?: {
661 [id: string]: string
662 };
663 content?: string;
664 data?: any;
665 }
666
667 function call(method: string, url: string, options?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
668
669 function del(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
670
671 function get(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
672
673 function post(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
674
675 function put(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
676
677 function call(method: string, url: string, options?: {
678 content?: string;
679 data?: Object;
680 query?: string;
681 params?: Object;
682 auth?: string;
683 headers?: Object;
684 timeout?: number;
685 followRedirects?: boolean;
686 npmRequestOptions?: Object;
687 beforeSend?: Function;
688 }, asyncCallback?: Function): HTTP.HTTPResponse;
689}
690
691declare module "meteor/http" {
692 module HTTP {
693 interface HTTPRequest {
694 content?: string;
695 data?: any;
696 query?: string;
697 params?: {
698 [id: string]: string
699 };
700 auth?: string;
701 headers?: {
702 [id: string]: string
703 };
704 timeout?: number;
705 followRedirects?: boolean;
706 npmRequestOptions?: Object;
707 }
708
709 interface HTTPResponse {
710 statusCode?: number;
711 headers?: {
712 [id: string]: string
713 };
714 content?: string;
715 data?: any;
716 }
717
718 function call(method: string, url: string, options?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
719
720 function del(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
721
722 function get(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
723
724 function post(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
725
726 function put(url: string, callOptions?: HTTP.HTTPRequest, asyncCallback?: Function): HTTP.HTTPResponse;
727
728 function call(method: string, url: string, options?: {
729 content?: string;
730 data?: Object;
731 query?: string;
732 params?: Object;
733 auth?: string;
734 headers?: Object;
735 timeout?: number;
736 followRedirects?: boolean;
737 npmRequestOptions?: Object;
738 beforeSend?: Function;
739 }, asyncCallback?: Function): HTTP.HTTPResponse;
740 }
741}
742
743declare module Meteor {
744 /** Global props **/
745 var isClient: boolean;
746 var isCordova: boolean;
747 var isServer: boolean;
748 var isProduction: boolean;
749 var release: string;
750 /** Global props **/
751
752 /** Settings **/
753 interface Settings {
754 public: {
755 [id: string]: any
756 }, [id: string]: any
757 }
758 var settings: Settings;
759 /** Settings **/
760
761 /** User **/
762 interface UserEmail {
763 address: string;
764 verified: boolean;
765 }
766 interface User {
767 _id?: string;
768 username?: string;
769 emails?: UserEmail[];
770 createdAt?: number;
771 profile?: any;
772 services?: any;
773 }
774
775 function user(): User;
776
777 function userId(): string;
778 var users: Mongo.Collection < User > ;
779 /** User **/
780
781 /** Error **/
782 var Error: ErrorStatic;
783 interface ErrorStatic {
784 new(error: string | number, reason?: string, details?: string): Error;
785 }
786 interface Error {
787 error: string | number;
788 reason?: string;
789 details?: string;
790 }
791 /** Error **/
792
793 /** Method **/
794 function methods(methods: Object): void;
795
796 function call(name: string, ...args: any[]): any;
797
798 function apply(name: string, args: EJSONable[], options?: {
799 wait?: boolean;
800 onResultReceived?: Function;
801 }, asyncCallback?: Function): any;
802 /** Method **/
803
804 /** Url **/
805 function absoluteUrl(path?: string, options?: {
806 secure?: boolean;
807 replaceLocalhost?: boolean;
808 rootUrl?: string;
809 }): string;
810 /** Url **/
811
812 /** Timeout **/
813 function setInterval(func: Function, delay: number): number;
814
815 function setTimeout(func: Function, delay: number): number;
816
817 function clearInterval(id: number): void;
818
819 function clearTimeout(id: number): void;
820
821 function defer(func: Function): void;
822 /** Timeout **/
823
824 /** utils **/
825 function startup(func: Function): void;
826
827 function wrapAsync(func: Function, context?: Object): any;
828
829 function bindEnvironment(func: Function): any;
830 /** utils **/
831
832 /** Pub/Sub **/
833 interface SubscriptionHandle {
834 stop(): void;
835 ready(): boolean;
836 }
837 interface LiveQueryHandle {
838 stop(): void;
839 }
840 /** Pub/Sub **/
841}
842
843declare module "meteor/meteor" {
844 module Meteor {
845 /** Global props **/
846 var isClient: boolean;
847 var isCordova: boolean;
848 var isServer: boolean;
849 var isProduction: boolean;
850 var release: string;
851 /** Global props **/
852
853 /** Settings **/
854 interface Settings {
855 public: {
856 [id: string]: any
857 }, [id: string]: any
858 }
859 var settings: Settings;
860 /** Settings **/
861
862 /** User **/
863 interface UserEmail {
864 address: string;
865 verified: boolean;
866 }
867 interface User {
868 _id?: string;
869 username?: string;
870 emails?: UserEmail[];
871 createdAt?: number;
872 profile?: any;
873 services?: any;
874 }
875
876 function user(): User;
877
878 function userId(): string;
879 var users: Mongo.Collection < User > ;
880 /** User **/
881
882 /** Error **/
883 var Error: ErrorStatic;
884 interface ErrorStatic {
885 new(error: string | number, reason?: string, details?: string): Error;
886 }
887 interface Error {
888 error: string | number;
889 reason?: string;
890 details?: string;
891 }
892 /** Error **/
893
894 /** Method **/
895 function methods(methods: Object): void;
896
897 function call(name: string, ...args: any[]): any;
898
899 function apply(name: string, args: EJSONable[], options?: {
900 wait?: boolean;
901 onResultReceived?: Function;
902 }, asyncCallback?: Function): any;
903 /** Method **/
904
905 /** Url **/
906 function absoluteUrl(path?: string, options?: {
907 secure?: boolean;
908 replaceLocalhost?: boolean;
909 rootUrl?: string;
910 }): string;
911 /** Url **/
912
913 /** Timeout **/
914 function setInterval(func: Function, delay: number): number;
915
916 function setTimeout(func: Function, delay: number): number;
917
918 function clearInterval(id: number): void;
919
920 function clearTimeout(id: number): void;
921
922 function defer(func: Function): void;
923 /** Timeout **/
924
925 /** utils **/
926 function startup(func: Function): void;
927
928 function wrapAsync(func: Function, context?: Object): any;
929
930 function bindEnvironment(func: Function): any;
931 /** utils **/
932
933 /** Pub/Sub **/
934 interface SubscriptionHandle {
935 stop(): void;
936 ready(): boolean;
937 }
938 interface LiveQueryHandle {
939 stop(): void;
940 }
941 /** Pub/Sub **/
942 }
943}
944
945declare module Meteor {
946 /** Login **/
947 interface LoginWithExternalServiceOptions {
948 requestPermissions?: string[];
949 requestOfflineToken?: Boolean;
950 forceApprovalPrompt?: Boolean;
951 loginUrlParameters?: Object;
952 redirectUrl?: string;
953 loginHint?: string;
954 loginStyle?: string;
955 }
956
957 function loginWithMeteorDeveloperAccount(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
958
959 function loginWithFacebook(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
960
961 function loginWithGithub(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
962
963 function loginWithGoogle(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
964
965 function loginWithMeetup(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
966
967 function loginWithTwitter(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
968
969 function loginWithWeibo(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
970
971 function loggingIn(): boolean;
972
973 function loginWith < ExternalService > (options?: {
974 requestPermissions?: string[];
975 requestOfflineToken?: boolean;
976 loginUrlParameters?: Object;
977 userEmail?: string;
978 loginStyle?: string;
979 redirectUrl?: string;
980 }, callback?: Function): void;
981
982 function loginWithPassword(user: Object | string, password: string, callback?: Function): void;
983
984 function loginWithToken(token: string, callback?: Function): void;
985
986 function logout(callback?: Function): void;
987
988 function logoutOtherClients(callback?: Function): void;
989 /** Login **/
990
991 /** Event **/
992 interface Event {
993 type: string;
994 target: HTMLElement;
995 currentTarget: HTMLElement;
996 which: number;
997 stopPropagation(): void;
998 stopImmediatePropagation(): void;
999 preventDefault(): void;
1000 isPropagationStopped(): boolean;
1001 isImmediatePropagationStopped(): boolean;
1002 isDefaultPrevented(): boolean;
1003 }
1004 interface EventHandlerFunction extends Function {
1005 (event?: Meteor.Event, templateInstance?: Blaze.TemplateInstance): void;
1006 }
1007 interface EventMap {
1008 [id: string]: Meteor.EventHandlerFunction;
1009 }
1010 /** Event **/
1011
1012 /** Connection **/
1013 function reconnect(): void;
1014
1015 function disconnect(): void;
1016 /** Connection **/
1017
1018 /** Status **/
1019 function status(): DDP.DDPStatus;
1020 /** Status **/
1021
1022 /** Pub/Sub **/
1023 function subscribe(name: string, ...args: any[]): Meteor.SubscriptionHandle;
1024 /** Pub/Sub **/
1025}
1026
1027declare module "meteor/meteor" {
1028 module Meteor {
1029 /** Login **/
1030 interface LoginWithExternalServiceOptions {
1031 requestPermissions?: string[];
1032 requestOfflineToken?: Boolean;
1033 forceApprovalPrompt?: Boolean;
1034 loginUrlParameters?: Object;
1035 redirectUrl?: string;
1036 loginHint?: string;
1037 loginStyle?: string;
1038 }
1039
1040 function loginWithMeteorDeveloperAccount(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1041
1042 function loginWithFacebook(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1043
1044 function loginWithGithub(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1045
1046 function loginWithGoogle(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1047
1048 function loginWithMeetup(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1049
1050 function loginWithTwitter(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1051
1052 function loginWithWeibo(options?: Meteor.LoginWithExternalServiceOptions, callback?: Function): void;
1053
1054 function loggingIn(): boolean;
1055
1056 function loginWith < ExternalService > (options?: {
1057 requestPermissions?: string[];
1058 requestOfflineToken?: boolean;
1059 loginUrlParameters?: Object;
1060 userEmail?: string;
1061 loginStyle?: string;
1062 redirectUrl?: string;
1063 }, callback?: Function): void;
1064
1065 function loginWithPassword(user: Object | string, password: string, callback?: Function): void;
1066
1067 function loginWithToken(token: string, callback?: Function): void;
1068
1069 function logout(callback?: Function): void;
1070
1071 function logoutOtherClients(callback?: Function): void;
1072 /** Login **/
1073
1074 /** Event **/
1075 interface Event {
1076 type: string;
1077 target: HTMLElement;
1078 currentTarget: HTMLElement;
1079 which: number;
1080 stopPropagation(): void;
1081 stopImmediatePropagation(): void;
1082 preventDefault(): void;
1083 isPropagationStopped(): boolean;
1084 isImmediatePropagationStopped(): boolean;
1085 isDefaultPrevented(): boolean;
1086 }
1087 interface EventHandlerFunction extends Function {
1088 (event?: Meteor.Event, templateInstance?: Blaze.TemplateInstance): void;
1089 }
1090 interface EventMap {
1091 [id: string]: Meteor.EventHandlerFunction;
1092 }
1093 /** Event **/
1094
1095 /** Connection **/
1096 function reconnect(): void;
1097
1098 function disconnect(): void;
1099 /** Connection **/
1100
1101 /** Status **/
1102 function status(): DDP.DDPStatus;
1103 /** Status **/
1104
1105 /** Pub/Sub **/
1106 function subscribe(name: string, ...args: any[]): Meteor.SubscriptionHandle;
1107 /** Pub/Sub **/
1108 }
1109}
1110
1111declare module Mongo {
1112 interface Selector {
1113 [key: string]: any;
1114 }
1115 interface Selector extends Object {}
1116 interface Modifier {}
1117 interface SortSpecifier {}
1118 interface FieldSpecifier {
1119 [id: string]: Number;
1120 }
1121
1122 var Collection: CollectionStatic;
1123 interface CollectionStatic {
1124 new < T > (name: string | null, options?: {
1125 connection?: Object;
1126 idGeneration?: string;
1127 transform?: Function;
1128 }): Collection < T > ;
1129 }
1130 interface Collection < T > {
1131 allow(options: {
1132 insert?: (userId: string, doc: T) => boolean;
1133 update?: (userId: string, doc: T, fieldNames: string[], modifier: any) => boolean;
1134 remove?: (userId: string, doc: T) => boolean;
1135 fetch?: string[];
1136 transform?: Function;
1137 }): boolean;
1138 deny(options: {
1139 insert?: (userId: string, doc: T) => boolean;
1140 update?: (userId: string, doc: T, fieldNames: string[], modifier: any) => boolean;
1141 remove?: (userId: string, doc: T) => boolean;
1142 fetch?: string[];
1143 transform?: Function;
1144 }): boolean;
1145 find(selector?: Selector | ObjectID | string, options?: {
1146 sort?: SortSpecifier;
1147 skip?: number;
1148 limit?: number;
1149 fields?: FieldSpecifier;
1150 reactive?: boolean;
1151 transform?: Function;
1152 }): Cursor < T > ;
1153 findOne(selector?: Selector | ObjectID | string, options?: {
1154 sort?: SortSpecifier;
1155 skip?: number;
1156 fields?: FieldSpecifier;
1157 reactive?: boolean;
1158 transform?: Function;
1159 }): T;
1160 insert(doc: T, callback?: Function): string;
1161 rawCollection(): any;
1162 rawDatabase(): any;
1163 remove(selector: Selector | ObjectID | string, callback?: Function): number;
1164 update(selector: Selector | ObjectID | string, modifier: Modifier, options?: {
1165 multi?: boolean;
1166 upsert?: boolean;
1167 }, callback?: Function): number;
1168 upsert(selector: Selector | ObjectID | string, modifier: Modifier, options?: {
1169 multi?: boolean;
1170 }, callback?: Function): {
1171 numberAffected?: number;insertedId?: string;
1172 };
1173 _ensureIndex(keys: {
1174 [key: string]: number | string
1175 } | string, options?: {
1176 [key: string]: any
1177 }): void;
1178 _dropIndex(keys: {
1179 [key: string]: number | string
1180 } | string): void;
1181 }
1182
1183 var Cursor: CursorStatic;
1184 interface CursorStatic {
1185 new < T > (): Cursor < T > ;
1186 }
1187 interface ObserveCallbacks {
1188 added?(document: Object) : void;
1189 addedAt?(document: Object, atIndex: number, before: Object) : void;
1190 changed?(newDocument: Object, oldDocument: Object) : void;
1191 changedAt?(newDocument: Object, oldDocument: Object, indexAt: number) : void;
1192 removed?(oldDocument: Object) : void;
1193 removedAt?(oldDocument: Object, atIndex: number) : void;
1194 movedTo?(document: Object, fromIndex: number, toIndex: number, before: Object) : void;
1195 }
1196 interface ObserveChangesCallbacks {
1197 added?(id: string, fields: Object) : void;
1198 addedBefore?(id: string, fields: Object, before: Object) : void;
1199 changed?(id: string, fields: Object) : void;
1200 movedBefore?(id: string, before: Object) : void;
1201 removed?(id: string) : void;
1202 }
1203 interface Cursor < T > {
1204 count(applySkipLimit?: boolean): number;
1205 fetch(): Array < T > ;
1206 forEach(callback: (doc: T, index: number, cursor: Cursor < T > ) => void, thisArg?: any): void;
1207 map < U > (callback: (doc: T, index: number, cursor: Cursor < T > ) => U, thisArg?: any): Array < U > ;
1208 observe(callbacks: ObserveCallbacks): Meteor.LiveQueryHandle;
1209 observeChanges(callbacks: ObserveChangesCallbacks): Meteor.LiveQueryHandle;
1210 }
1211
1212 var ObjectID: ObjectIDStatic;
1213 interface ObjectIDStatic {
1214 new(hexString?: string): ObjectID;
1215 }
1216 interface ObjectID {}
1217}
1218
1219declare module "meteor/mongo" {
1220 module Mongo {
1221 interface Selector {
1222 [key: string]: any;
1223 }
1224 interface Selector extends Object {}
1225 interface Modifier {}
1226 interface SortSpecifier {}
1227 interface FieldSpecifier {
1228 [id: string]: Number;
1229 }
1230
1231 var Collection: CollectionStatic;
1232 interface CollectionStatic {
1233 new < T > (name: string | null, options?: {
1234 connection?: Object;
1235 idGeneration?: string;
1236 transform?: Function;
1237 }): Collection < T > ;
1238 }
1239 interface Collection < T > {
1240 allow(options: {
1241 insert?: (userId: string, doc: T) => boolean;
1242 update?: (userId: string, doc: T, fieldNames: string[], modifier: any) => boolean;
1243 remove?: (userId: string, doc: T) => boolean;
1244 fetch?: string[];
1245 transform?: Function;
1246 }): boolean;
1247 deny(options: {
1248 insert?: (userId: string, doc: T) => boolean;
1249 update?: (userId: string, doc: T, fieldNames: string[], modifier: any) => boolean;
1250 remove?: (userId: string, doc: T) => boolean;
1251 fetch?: string[];
1252 transform?: Function;
1253 }): boolean;
1254 find(selector?: Selector | ObjectID | string, options?: {
1255 sort?: SortSpecifier;
1256 skip?: number;
1257 limit?: number;
1258 fields?: FieldSpecifier;
1259 reactive?: boolean;
1260 transform?: Function;
1261 }): Cursor < T > ;
1262 findOne(selector?: Selector | ObjectID | string, options?: {
1263 sort?: SortSpecifier;
1264 skip?: number;
1265 fields?: FieldSpecifier;
1266 reactive?: boolean;
1267 transform?: Function;
1268 }): T;
1269 insert(doc: T, callback?: Function): string;
1270 rawCollection(): any;
1271 rawDatabase(): any;
1272 remove(selector: Selector | ObjectID | string, callback?: Function): number;
1273 update(selector: Selector | ObjectID | string, modifier: Modifier, options?: {
1274 multi?: boolean;
1275 upsert?: boolean;
1276 }, callback?: Function): number;
1277 upsert(selector: Selector | ObjectID | string, modifier: Modifier, options?: {
1278 multi?: boolean;
1279 }, callback?: Function): {
1280 numberAffected?: number;insertedId?: string;
1281 };
1282 _ensureIndex(keys: {
1283 [key: string]: number | string
1284 } | string, options?: {
1285 [key: string]: any
1286 }): void;
1287 _dropIndex(keys: {
1288 [key: string]: number | string
1289 } | string): void;
1290 }
1291
1292 var Cursor: CursorStatic;
1293 interface CursorStatic {
1294 new < T > (): Cursor < T > ;
1295 }
1296 interface ObserveCallbacks {
1297 added?(document: Object) : void;
1298 addedAt?(document: Object, atIndex: number, before: Object) : void;
1299 changed?(newDocument: Object, oldDocument: Object) : void;
1300 changedAt?(newDocument: Object, oldDocument: Object, indexAt: number) : void;
1301 removed?(oldDocument: Object) : void;
1302 removedAt?(oldDocument: Object, atIndex: number) : void;
1303 movedTo?(document: Object, fromIndex: number, toIndex: number, before: Object) : void;
1304 }
1305 interface ObserveChangesCallbacks {
1306 added?(id: string, fields: Object) : void;
1307 addedBefore?(id: string, fields: Object, before: Object) : void;
1308 changed?(id: string, fields: Object) : void;
1309 movedBefore?(id: string, before: Object) : void;
1310 removed?(id: string) : void;
1311 }
1312 interface Cursor < T > {
1313 count(applySkipLimit?: boolean): number;
1314 fetch(): Array < T > ;
1315 forEach(callback: (doc: T, index: number, cursor: Cursor < T > ) => void, thisArg?: any): void;
1316 map < U > (callback: (doc: T, index: number, cursor: Cursor < T > ) => U, thisArg?: any): Array < U > ;
1317 observe(callbacks: ObserveCallbacks): Meteor.LiveQueryHandle;
1318 observeChanges(callbacks: ObserveChangesCallbacks): Meteor.LiveQueryHandle;
1319 }
1320
1321 var ObjectID: ObjectIDStatic;
1322 interface ObjectIDStatic {
1323 new(hexString?: string): ObjectID;
1324 }
1325 interface ObjectID {}
1326 }
1327}
1328
1329declare module Random {
1330 function id(numberOfChars?: number): string;
1331
1332 function secret(numberOfChars?: number): string;
1333
1334 function fraction(): number;
1335 // @param numberOfDigits, @returns a random hex string of the given length
1336 function hexString(numberOfDigits: number): string;
1337 // @param array, @return a random element in array
1338 function choice(array: any[]): string;
1339 // @param str, @return a random char in str
1340 function choice(str: string): string;
1341}
1342
1343declare module "meteor/random" {
1344 module Random {
1345 function id(numberOfChars?: number): string;
1346
1347 function secret(numberOfChars?: number): string;
1348
1349 function fraction(): number;
1350 // @param numberOfDigits, @returns a random hex string of the given length
1351 function hexString(numberOfDigits: number): string;
1352 // @param array, @return a random element in array
1353 function choice(array: any[]): string;
1354 // @param str, @return a random char in str
1355 function choice(str: string): string;
1356 }
1357}
1358
1359declare var ReactiveVar: ReactiveVarStatic;
1360interface ReactiveVarStatic {
1361 new < T > (initialValue: T, equalsFunc?: Function): ReactiveVar < T > ;
1362}
1363interface ReactiveVar < T > {
1364 get(): T;
1365 set(newValue: T): void;
1366}
1367
1368declare module "meteor/reactive-var" {
1369 var ReactiveVar: ReactiveVarStatic;
1370 interface ReactiveVarStatic {
1371 new < T > (initialValue: T, equalsFunc?: Function): ReactiveVar < T > ;
1372 }
1373 interface ReactiveVar < T > {
1374 get(): T;
1375 set(newValue: T): void;
1376 }
1377}
1378
1379declare module Session {
1380 function equals(key: string, value: string | number | boolean | any): boolean;
1381
1382 function get(key: string): any;
1383
1384 function set(key: string, value: EJSONable | any): void;
1385
1386 function setDefault(key: string, value: EJSONable | any): void;
1387}
1388
1389declare module "meteor/session" {
1390 module Session {
1391 function equals(key: string, value: string | number | boolean | any): boolean;
1392
1393 function get(key: string): any;
1394
1395 function set(key: string, value: EJSONable | any): void;
1396
1397 function setDefault(key: string, value: EJSONable | any): void;
1398 }
1399}
1400
1401declare var Template: TemplateStatic;
1402interface TemplateStatic extends Blaze.TemplateStatic {
1403 new(viewName?: string, renderFunction?: Function): Blaze.Template;
1404 body: Blaze.Template;
1405 [index: string]: any | Blaze.Template;
1406}
1407
1408declare module "meteor/templating" {
1409 var Template: TemplateStatic;
1410 interface TemplateStatic extends Blaze.TemplateStatic {
1411 new(viewName?: string, renderFunction?: Function): Blaze.Template;
1412 body: Blaze.Template;
1413 [index: string]: any | Blaze.Template;
1414 }
1415}
1416
1417interface ILengthAble {
1418 length: number;
1419}
1420
1421interface ITinytestAssertions {
1422 ok(doc: Object): void;
1423 expect_fail(): void;
1424 fail(doc: Object): void;
1425 runId(): string;
1426 equal < T > (actual: T, expected: T, message?: string, not?: boolean): void;
1427 notEqual < T > (actual: T, expected: T, message?: string): void;
1428 instanceOf(obj: Object, klass: Function, message?: string): void;
1429 notInstanceOf(obj: Object, klass: Function, message?: string): void;
1430 matches(actual: any, regexp: RegExp, message?: string): void;
1431 notMatches(actual: any, regexp: RegExp, message?: string): void;
1432 throws(f: Function, expected?: string | RegExp): void;
1433 isTrue(v: boolean, msg?: string): void;
1434 isFalse(v: boolean, msg?: string): void;
1435 isNull(v: any, msg?: string): void;
1436 isNotNull(v: any, msg?: string): void;
1437 isUndefined(v: any, msg?: string): void;
1438 isNotUndefined(v: any, msg?: string): void;
1439 isNan(v: any, msg?: string): void;
1440 isNotNan(v: any, msg?: string): void;
1441 include < T > (s: Array < T > | Object | string, value: any, msg?: string, not?: boolean): void;
1442
1443 notInclude < T > (s: Array < T > | Object | string, value: any, msg?: string, not?: boolean): void;
1444 length(obj: ILengthAble, expected_length: number, msg?: string): void;
1445 _stringEqual(actual: string, expected: string, msg?: string): void;
1446}
1447
1448declare module Tinytest {
1449 function add(description: string, func: (test: ITinytestAssertions) => void): void;
1450
1451 function addAsync(description: string, func: (test: ITinytestAssertions) => void): void;
1452}
1453
1454declare module "meteor/tiny-test" {
1455 interface ILengthAble {
1456 length: number;
1457 }
1458
1459 interface ITinytestAssertions {
1460 ok(doc: Object): void;
1461 expect_fail(): void;
1462 fail(doc: Object): void;
1463 runId(): string;
1464 equal < T > (actual: T, expected: T, message?: string, not?: boolean): void;
1465 notEqual < T > (actual: T, expected: T, message?: string): void;
1466 instanceOf(obj: Object, klass: Function, message?: string): void;
1467 notInstanceOf(obj: Object, klass: Function, message?: string): void;
1468 matches(actual: any, regexp: RegExp, message?: string): void;
1469 notMatches(actual: any, regexp: RegExp, message?: string): void;
1470 throws(f: Function, expected?: string | RegExp): void;
1471 isTrue(v: boolean, msg?: string): void;
1472 isFalse(v: boolean, msg?: string): void;
1473 isNull(v: any, msg?: string): void;
1474 isNotNull(v: any, msg?: string): void;
1475 isUndefined(v: any, msg?: string): void;
1476 isNotUndefined(v: any, msg?: string): void;
1477 isNan(v: any, msg?: string): void;
1478 isNotNan(v: any, msg?: string): void;
1479 include < T > (s: Array < T > | Object | string, value: any, msg?: string, not?: boolean): void;
1480
1481 notInclude < T > (s: Array < T > | Object | string, value: any, msg?: string, not?: boolean): void;
1482 length(obj: ILengthAble, expected_length: number, msg?: string): void;
1483 _stringEqual(actual: string, expected: string, msg?: string): void;
1484 }
1485
1486 module Tinytest {
1487 function add(description: string, func: (test: ITinytestAssertions) => void): void;
1488
1489 function addAsync(description: string, func: (test: ITinytestAssertions) => void): void;
1490 }
1491}
1492
1493declare module Tracker {
1494 function Computation(): void;
1495 interface Computation {
1496 firstRun: boolean;
1497 invalidate(): void;
1498 invalidated: boolean;
1499 onInvalidate(callback: Function): void;
1500 onStop(callback: Function): void;
1501 stop(): void;
1502 stopped: boolean;
1503 }
1504 var currentComputation: Computation;
1505
1506 var Dependency: DependencyStatic;
1507 interface DependencyStatic {
1508 new(): Dependency;
1509 }
1510 interface Dependency {
1511 changed(): void;
1512 depend(fromComputation?: Computation): boolean;
1513 hasDependents(): boolean;
1514 }
1515
1516 var active: boolean;
1517
1518 function afterFlush(callback: Function): void;
1519
1520 function autorun(runFunc: (computation: Computation) => void, options?: {
1521 onError?: Function;
1522 }): Computation;
1523
1524 function flush(): void;
1525
1526 function nonreactive(func: Function): void;
1527
1528 function onInvalidate(callback: Function): void;
1529}
1530
1531declare module "meteor/tracker" {
1532 module Tracker {
1533 function Computation(): void;
1534 interface Computation {
1535 firstRun: boolean;
1536 invalidate(): void;
1537 invalidated: boolean;
1538 onInvalidate(callback: Function): void;
1539 onStop(callback: Function): void;
1540 stop(): void;
1541 stopped: boolean;
1542 }
1543 var currentComputation: Computation;
1544
1545 var Dependency: DependencyStatic;
1546 interface DependencyStatic {
1547 new(): Dependency;
1548 }
1549 interface Dependency {
1550 changed(): void;
1551 depend(fromComputation?: Computation): boolean;
1552 hasDependents(): boolean;
1553 }
1554
1555 var active: boolean;
1556
1557 function afterFlush(callback: Function): void;
1558
1559 function autorun(runFunc: (computation: Computation) => void, options?: {
1560 onError?: Function;
1561 }): Computation;
1562
1563 function flush(): void;
1564
1565 function nonreactive(func: Function): void;
1566
1567 function onInvalidate(callback: Function): void;
1568 }
1569}
1570
1571declare module Match {
1572 function Maybe(pattern: any): boolean;
1573}
1574
1575declare module "meteor/check" {
1576 module Match {
1577 function Maybe(pattern: any): boolean;
1578 }
1579}
1580
1581declare module Meteor {
1582 /** Global props **/
1583 var isDevelopment: boolean;
1584 var isTest: boolean;
1585 /** Global props **/
1586}
1587
1588declare module "meteor/meteor" {
1589 module Meteor {
1590 /** Global props **/
1591 var isDevelopment: boolean;
1592 var isTest: boolean;
1593 /** Global props **/
1594 }
1595}
1596
\No newline at end of file