google-closure-compiler 20161024.3.0 → 20170409.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +327 -0
  2. package/compiler.jar +0 -0
  3. package/contrib/externs/angular-1.3-resource.js +6 -0
  4. package/contrib/externs/angular-1.3.js +4 -3
  5. package/contrib/externs/angular-1.4-resource.js +6 -0
  6. package/contrib/externs/angular-1.4.js +2 -2
  7. package/contrib/externs/angular-1.5-q_templated.js +19 -1
  8. package/contrib/externs/angular-1.5-resource.js +6 -0
  9. package/contrib/externs/angular-1.5.js +44 -9
  10. package/contrib/externs/angular-1.6-http-promise_templated.js +61 -0
  11. package/contrib/externs/angular-1.6-mocks.js +267 -0
  12. package/contrib/externs/angular-1.6-q_templated.js +194 -0
  13. package/contrib/externs/angular-1.6-resource.js +332 -0
  14. package/contrib/externs/{w3c_css.js → angular-1.6-test.js} +8 -6
  15. package/contrib/externs/angular-1.6.js +2646 -0
  16. package/contrib/externs/angular-cache-4.6.js +316 -0
  17. package/contrib/externs/angular-material-1.1.js +92 -33
  18. package/contrib/externs/angular-material.js +36 -5
  19. package/contrib/externs/chai-3.5.js +101 -2
  20. package/contrib/externs/chrome_extensions.js +267 -95
  21. package/contrib/externs/jasmine-2.0.js +23 -3
  22. package/contrib/externs/jquery-1.4.4.js +1 -1
  23. package/contrib/externs/jquery-1.5.js +1 -1
  24. package/contrib/externs/jquery-1.6.js +1 -1
  25. package/contrib/externs/jquery-3.0.js +2037 -0
  26. package/contrib/externs/jquery-3.1.js +2045 -0
  27. package/contrib/externs/maps/google_maps_api_v3.js +306 -263
  28. package/contrib/externs/maps/google_maps_api_v3_27.js +6732 -0
  29. package/contrib/externs/maps/google_maps_api_v3_28.js +6637 -0
  30. package/contrib/externs/maps/google_maps_api_v3_exp.js +41 -106
  31. package/contrib/externs/mocha-2.5.js +65 -14
  32. package/contrib/externs/polymer-1.0.js +43 -5
  33. package/contrib/externs/safari.js +58 -0
  34. package/contrib/externs/sinon-1.17.js +719 -10
  35. package/contrib/externs/sinon-chai-2.7.js +78 -0
  36. package/contrib/externs/w3c_eventsource.js +6 -17
  37. package/contrib/externs/web_component_tester-4.2.js +6 -0
  38. package/contrib/nodejs/crypto.js +6 -6
  39. package/lib/gulp/index.js +2 -2
  40. package/lib/node/closure-compiler.js +3 -1
  41. package/package.json +8 -9
  42. package/contrib/externs/jquery-1.3.2.externs.js +0 -714
  43. package/contrib/externs/w3c_gamepad.js +0 -91
  44. package/contrib/externs/w3c_midi.js +0 -293
  45. package/contrib/externs/w3c_pointer_events.js +0 -105
@@ -0,0 +1,2646 @@
1
+ /*
2
+ * Copyright 2012 The Closure Compiler Authors.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview Externs for Angular 1.
19
+ *
20
+ * TODO: Remaining Services:
21
+ * $cookieStore
22
+ * $httpBackend
23
+ * $rootElement
24
+ * $rootScope
25
+ *
26
+ * @see http://angularjs.org/
27
+ * @externs
28
+ */
29
+
30
+ /**
31
+ * @typedef {(Window|Document|Element|Array<Element>|string|!angular.JQLite|
32
+ * NodeList|{length: number})}
33
+ */
34
+ var JQLiteSelector;
35
+
36
+ /**
37
+ * @const
38
+ */
39
+ var angular = {};
40
+
41
+ /**
42
+ * @param {T} self Specifies the object which this should point to when the
43
+ * function is run.
44
+ * @param {?function(this:T, ...)} fn A function to partially apply.
45
+ * @return {!Function} A partially-applied form of the function bind() was
46
+ * invoked as a method of.
47
+ * @param {...*} args Additional arguments that are partially applied to the
48
+ * function.
49
+ * @template T
50
+ */
51
+ angular.bind = function(self, fn, args) {};
52
+
53
+ /** @record */
54
+ angular.BootstrapOptions = function() {};
55
+
56
+ /** @type {boolean|undefined} */
57
+ angular.BootstrapOptions.prototype.strictDi;
58
+
59
+ /**
60
+ * @param {Element|HTMLDocument} element
61
+ * @param {Array<string|Function>=} opt_modules
62
+ * @param {angular.BootstrapOptions=} opt_config
63
+ * @return {!angular.$injector}
64
+ */
65
+ angular.bootstrap = function(element, opt_modules, opt_config) {};
66
+
67
+ /**
68
+ * @param {T} source
69
+ * @param {(Object|Array)=} opt_dest
70
+ * @return {T}
71
+ * @template T
72
+ */
73
+ angular.copy = function(source, opt_dest) {};
74
+
75
+ /**
76
+ * @param {(JQLiteSelector|Object)} element
77
+ * @param {(JQLiteSelector|Object)=} opt_context
78
+ * @return {!angular.JQLite}
79
+ */
80
+ angular.element = function(element, opt_context) {};
81
+
82
+ /**
83
+ * @param {*} o1
84
+ * @param {*} o2
85
+ * @return {boolean}
86
+ */
87
+ angular.equals = function(o1, o2) {};
88
+
89
+ /**
90
+ * @param {Object} dest
91
+ * @param {...Object} srcs
92
+ */
93
+ angular.extend = function(dest, srcs) {};
94
+
95
+ /**
96
+ * @param {Object|Array} obj
97
+ * @param {Function} iterator
98
+ * @param {Object=} opt_context
99
+ * @return {Object|Array}
100
+ */
101
+ angular.forEach = function(obj, iterator, opt_context) {};
102
+
103
+ /**
104
+ * @param {string|T} json
105
+ * @return {Object|Array|Date|T}
106
+ * @template T
107
+ */
108
+ angular.fromJson = function(json) {};
109
+
110
+ /**
111
+ * @param {T} arg
112
+ * @return {T}
113
+ * @template T
114
+ */
115
+ angular.identity = function(arg) {};
116
+
117
+ /**
118
+ * @param {Array<string|Function>} modules
119
+ * @return {!angular.$injector}
120
+ */
121
+ angular.injector = function(modules) {};
122
+
123
+ /**
124
+ * @param {*} value
125
+ * @return {boolean}
126
+ */
127
+ angular.isArray = function(value) {};
128
+
129
+ /**
130
+ * @param {*} value
131
+ * @return {boolean}
132
+ */
133
+ angular.isDate = function(value) {};
134
+
135
+ /**
136
+ * @param {*} value
137
+ * @return {boolean}
138
+ */
139
+ angular.isDefined = function(value) {};
140
+
141
+ /**
142
+ * @param {*} value
143
+ * @return {boolean}
144
+ */
145
+ angular.isElement = function(value) {};
146
+
147
+ /**
148
+ * @param {*} value
149
+ * @return {boolean}
150
+ */
151
+ angular.isFunction = function(value) {};
152
+
153
+ /**
154
+ * @param {*} value
155
+ * @return {boolean}
156
+ */
157
+ angular.isNumber = function(value) {};
158
+
159
+ /**
160
+ * @param {*} value
161
+ * @return {boolean}
162
+ */
163
+ angular.isObject = function(value) {};
164
+
165
+ /**
166
+ * @param {*} value
167
+ * @return {boolean}
168
+ */
169
+ angular.isString = function(value) {};
170
+
171
+ /**
172
+ * @param {*} value
173
+ * @return {boolean}
174
+ */
175
+ angular.isUndefined = function(value) {};
176
+
177
+ /**
178
+ * @param {string} s
179
+ * @return {string}
180
+ */
181
+ angular.lowercase = function(s) {};
182
+
183
+ /**
184
+ * @param {Object} dest
185
+ * @param {...Object} srcs
186
+ */
187
+ angular.merge = function(dest, srcs) {};
188
+
189
+ /**
190
+ * @param {string} name
191
+ * @param {Array<string>=} opt_requires
192
+ * @param {angular.Injectable=} opt_configFn
193
+ * @return {!angular.Module}
194
+ */
195
+ angular.module = function(name, opt_requires, opt_configFn) {};
196
+
197
+ angular.noop = function() {};
198
+
199
+ angular.reloadWithDebugInfo = function() {};
200
+
201
+ /**
202
+ * @param {Object|Array|Date|string|number|boolean} obj
203
+ * @param {boolean=} opt_pretty
204
+ * @return {string}
205
+ */
206
+ angular.toJson = function(obj, opt_pretty) {};
207
+
208
+ /**
209
+ * @param {string} s
210
+ * @return {string}
211
+ */
212
+ angular.uppercase = function(s) {};
213
+
214
+ /**
215
+ * Note: the methods are declared as fields rather than methods, since Angular
216
+ * allows users to define only a subset of the methods.
217
+ *
218
+ * @record
219
+ */
220
+ angular.Animation = function() {};
221
+
222
+ /**
223
+ * @type {(function(!angular.JQLite, !Object, !Object, !Function, !Object=):
224
+ * (!Function|undefined))|
225
+ * undefined}
226
+ */
227
+ angular.Animation.prototype.animate;
228
+
229
+ /**
230
+ * @type {(function(!angular.JQLite, !Function, !Object=):
231
+ * (!Function|undefined))|
232
+ * undefined}
233
+ */
234
+ angular.Animation.prototype.enter = function(element, doneFn, opt_options) {};
235
+
236
+ /**
237
+ * @type {(function(!angular.JQLite, !Function, !Object=):
238
+ * (!Function|undefined)|undefined)}
239
+ */
240
+ angular.Animation.prototype.leave;
241
+
242
+ /**
243
+ * @type {function(!angular.JQLite, !Function, !Object=):
244
+ * (!Function|undefined)|
245
+ * undefined}
246
+ */
247
+ angular.Animation.prototype.move;
248
+
249
+ /**
250
+ * @type {function(!angular.JQLite, string, !Function, !Object=):
251
+ * (!Function|undefined)|
252
+ * undefined}
253
+ */
254
+ angular.Animation.prototype.beforeAddClass;
255
+
256
+ /**
257
+ * @type {function(!angular.JQLite, string, !Function, !Object=):
258
+ * (!Function|undefined)|
259
+ * undefined}
260
+ */
261
+ angular.Animation.prototype.addClass;
262
+
263
+ /**
264
+ * @type {function(!angular.JQLite, string, !Function, !Object=):
265
+ * (!Function|undefined)|
266
+ * undefined}
267
+ */
268
+ angular.Animation.prototype.beforeRemoveClass;
269
+
270
+ /**
271
+ * @type {function(!angular.JQLite, string, string, !Function, !Object=):
272
+ * (!Function|undefined)|
273
+ * undefined}
274
+ */
275
+ angular.Animation.prototype.removeClass;
276
+
277
+ /**
278
+ * @type {function(!angular.JQLite, string, string, !Function, !Object=):
279
+ * (!Function|undefined)|
280
+ * undefined}
281
+ */
282
+ angular.Animation.prototype.beforeSetClass;
283
+
284
+ /**
285
+ * @type {function(!angular.JQLite, string, string, !Function, !Object=):
286
+ * (!Function|undefined)|
287
+ * undefined}
288
+ */
289
+ angular.Animation.prototype.setClass;
290
+
291
+
292
+
293
+ /**
294
+ * @interface
295
+ */
296
+ angular.Attributes = function() {};
297
+
298
+ /**
299
+ * @type {Object<string, string>}
300
+ */
301
+ angular.Attributes.prototype.$attr;
302
+
303
+ /**
304
+ * @param {string} classVal
305
+ */
306
+ angular.Attributes.prototype.$addClass = function(classVal) {};
307
+
308
+ /**
309
+ * @param {string} classVal
310
+ */
311
+ angular.Attributes.prototype.$removeClass = function(classVal) {};
312
+
313
+ /**
314
+ * @param {string} newClasses
315
+ * @param {string} oldClasses
316
+ */
317
+ angular.Attributes.prototype.$updateClass = function(newClasses, oldClasses) {};
318
+
319
+ /**
320
+ * @param {string} name
321
+ * @return {string}
322
+ */
323
+ angular.Attributes.prototype.$normalize = function(name) {};
324
+
325
+ /**
326
+ * @param {string} key
327
+ * @param {function(*)} fn
328
+ * @return {function()}
329
+ */
330
+ angular.Attributes.prototype.$observe = function(key, fn) {};
331
+
332
+ /**
333
+ * @param {string} key
334
+ * @param {?(string|boolean)} value
335
+ * @param {boolean=} opt_writeAttr
336
+ * @param {string=} opt_attrName
337
+ */
338
+ angular.Attributes.prototype.$set =
339
+ function(key, value, opt_writeAttr, opt_attrName) {};
340
+
341
+ /**
342
+ * @record
343
+ */
344
+ angular.LinkingFunctions = function() {};
345
+
346
+ /**
347
+ * @type {function(
348
+ * !angular.Scope=,
349
+ * !angular.JQLite=,
350
+ * !angular.Attributes=,
351
+ * (!Object|!Array<!Object>)=)|
352
+ * undefined}
353
+ */
354
+ angular.LinkingFunctions.prototype.pre;
355
+
356
+ /**
357
+ * @type {function(
358
+ * !angular.Scope=,
359
+ * !angular.JQLite=,
360
+ * !angular.Attributes=,
361
+ * (!Object|Array<!Object>)=)|
362
+ * undefined}
363
+ */
364
+ angular.LinkingFunctions.prototype.post;
365
+
366
+
367
+ /**
368
+ * @typedef {{
369
+ * bindToController: (boolean|!Object<string, string>|undefined),
370
+ * compile: (function(
371
+ * !angular.JQLite=, !angular.Attributes=, Function=)|undefined),
372
+ * controller: (angular.Injectable|string|undefined),
373
+ * controllerAs: (string|undefined),
374
+ * link: (function(
375
+ * !angular.Scope=, !angular.JQLite=, !angular.Attributes=,
376
+ * (!Object|!Array.<!Object>)=)|
377
+ * !angular.LinkingFunctions|
378
+ * undefined),
379
+ * name: (string|undefined),
380
+ * priority: (number|undefined),
381
+ * replace: (boolean|undefined),
382
+ * require: (string|Array.<string>|!Object<string, string>|undefined),
383
+ * restrict: (string|undefined),
384
+ * scope: (boolean|Object.<string, string>|undefined),
385
+ * template: (string|!angular.Injectable|undefined),
386
+ * templateNamespace: (string|undefined),
387
+ * templateUrl: (string|!angular.Injectable|!Object|undefined),
388
+ * terminal: (boolean|undefined),
389
+ * transclude: (boolean|string|!Object.<string, string>|undefined)
390
+ * }}
391
+ */
392
+ angular.Directive;
393
+
394
+
395
+
396
+ /**
397
+ * @interface
398
+ * @template T
399
+ */
400
+ angular.Change = function() {};
401
+
402
+ /** @type {T} */
403
+ angular.Change.prototype.currentValue;
404
+
405
+ /** @type {T} */
406
+ angular.Change.prototype.previousValue;
407
+
408
+ /** @return {boolean} */
409
+ angular.Change.prototype.isFirstChange = function() {};
410
+
411
+
412
+ /** @record */
413
+ angular.ComponentController = function() {};
414
+
415
+ angular.ComponentController.prototype.$onInit = function() {};
416
+
417
+ angular.ComponentController.prototype.$postLink = function() {};
418
+
419
+ /** @param {!Object<!angular.Change>} changesObj */
420
+ angular.ComponentController.prototype.$onChanges = function(changesObj) {};
421
+
422
+ angular.ComponentController.prototype.$doCheck = function() {};
423
+
424
+ angular.ComponentController.prototype.$onDestroy = function() {};
425
+
426
+
427
+
428
+ /**
429
+ * @record
430
+ */
431
+ angular.Component = function() {};
432
+
433
+ /** @type {!Object<string, string>|undefined} */
434
+ angular.Component.prototype.bindings;
435
+
436
+ /** @type {!angular.Injectable|string|undefined|!angular.ComponentController} */
437
+ angular.Component.prototype.controller;
438
+
439
+ /** @type {string|undefined} */
440
+ angular.Component.prototype.controllerAs;
441
+
442
+ /**
443
+ * @type {string|!angular.Injectable|undefined}
444
+ */
445
+ angular.Component.prototype.template;
446
+
447
+ /**
448
+ * @type {string|!angular.Injectable|!Object|undefined}
449
+ */
450
+ angular.Component.prototype.templateUrl;
451
+
452
+ /** @type {boolean|!Object<string, string>|undefined} */
453
+ angular.Component.prototype.transclude;
454
+
455
+ /** @type {!Object<string, string>|undefined} */
456
+ angular.Component.prototype.require;
457
+
458
+
459
+
460
+ /**
461
+ * @typedef {(Function|Array<string|Function>)}
462
+ */
463
+ angular.Injectable;
464
+
465
+ /**
466
+ * @constructor
467
+ */
468
+ angular.JQLite = function() {};
469
+
470
+ /**
471
+ * @param {string} name
472
+ * @return {!angular.JQLite}
473
+ */
474
+ angular.JQLite.prototype.addClass = function(name) {};
475
+
476
+ /**
477
+ * @param {JQLiteSelector} element
478
+ * @return {!angular.JQLite}
479
+ */
480
+ angular.JQLite.prototype.after = function(element) {};
481
+
482
+ /**
483
+ * @param {JQLiteSelector} element
484
+ * @return {!angular.JQLite}
485
+ */
486
+ angular.JQLite.prototype.append = function(element) {};
487
+
488
+ /**
489
+ * @param {string} name
490
+ * @param {(string|boolean|null)=} opt_value
491
+ * @return {!angular.JQLite|string|boolean}
492
+ */
493
+ angular.JQLite.prototype.attr = function(name, opt_value) {};
494
+
495
+ /**
496
+ * @param {string} type
497
+ * @param {Function} fn
498
+ * @return {!angular.JQLite}
499
+ */
500
+ angular.JQLite.prototype.bind = function(type, fn) {};
501
+
502
+ /**
503
+ * @return {!angular.JQLite}
504
+ */
505
+ angular.JQLite.prototype.children = function() {};
506
+
507
+ /**
508
+ * @return {!angular.JQLite}
509
+ */
510
+ angular.JQLite.prototype.clone = function() {};
511
+
512
+ /**
513
+ * @return {!angular.JQLite}
514
+ */
515
+ angular.JQLite.prototype.contents = function() {};
516
+
517
+ /**
518
+ * @param {string=} opt_name
519
+ * @return {Object}
520
+ */
521
+ angular.JQLite.prototype.controller = function(opt_name) {};
522
+
523
+ /**
524
+ * @param {(string|!Object)} nameOrObject
525
+ * @param {string=} opt_value
526
+ * @return {!angular.JQLite|string}
527
+ */
528
+ angular.JQLite.prototype.css = function(nameOrObject, opt_value) {};
529
+
530
+ /**
531
+ * @param {string=} opt_key
532
+ * @param {*=} opt_value
533
+ * @return {*}
534
+ */
535
+ angular.JQLite.prototype.data = function(opt_key, opt_value) {};
536
+
537
+ /**
538
+ * @return {!angular.JQLite}
539
+ */
540
+ angular.JQLite.prototype.detach = function() {};
541
+
542
+ /**
543
+ * @return {!angular.JQLite}
544
+ */
545
+ angular.JQLite.prototype.empty = function() {};
546
+
547
+ /**
548
+ * @param {number} index
549
+ * @return {!angular.JQLite}
550
+ */
551
+ angular.JQLite.prototype.eq = function(index) {};
552
+
553
+ /**
554
+ * @param {string} selector
555
+ * @return {!angular.JQLite}
556
+ */
557
+ angular.JQLite.prototype.find = function(selector) {};
558
+
559
+ /**
560
+ * @param {string} name
561
+ * @return {boolean}
562
+ */
563
+ angular.JQLite.prototype.hasClass = function(name) {};
564
+
565
+ /**
566
+ * @param {string=} opt_value
567
+ * @return {!angular.JQLite|string}
568
+ */
569
+ angular.JQLite.prototype.html = function(opt_value) {};
570
+
571
+ /**
572
+ * @param {string=} opt_key
573
+ * @param {*=} opt_value
574
+ * @return {*}
575
+ */
576
+ angular.JQLite.prototype.inheritedData = function(opt_key, opt_value) {};
577
+
578
+ /**
579
+ * @return {!angular.$injector}
580
+ */
581
+ angular.JQLite.prototype.injector = function() {};
582
+
583
+ /** @type {number} */
584
+ angular.JQLite.prototype.length;
585
+
586
+ /**
587
+ * @return {!angular.JQLite}
588
+ */
589
+ angular.JQLite.prototype.next = function() {};
590
+
591
+ /**
592
+ * @param {string} type
593
+ * @param {Function} fn
594
+ * @return {!angular.JQLite}
595
+ */
596
+ angular.JQLite.prototype.on = function(type, fn) {};
597
+
598
+ /**
599
+ * @param {string} events
600
+ * @param {Object|function(Event)} dataOrHandler
601
+ * @param {function(Event)=} opt_handler
602
+ */
603
+ angular.JQLite.prototype.one = function(events, dataOrHandler, opt_handler) {};
604
+
605
+ /**
606
+ * @param {string=} opt_type
607
+ * @param {Function=} opt_fn
608
+ * @return {!angular.JQLite}
609
+ */
610
+ angular.JQLite.prototype.off = function(opt_type, opt_fn) {};
611
+
612
+ /**
613
+ * @return {!angular.JQLite}
614
+ */
615
+ angular.JQLite.prototype.parent = function() {};
616
+
617
+ /**
618
+ * @param {JQLiteSelector} element
619
+ * @return {!angular.JQLite}
620
+ */
621
+ angular.JQLite.prototype.prepend = function(element) {};
622
+
623
+ /**
624
+ * @param {string} name
625
+ * @param {*=} opt_value
626
+ * @return {*}
627
+ */
628
+ angular.JQLite.prototype.prop = function(name, opt_value) {};
629
+
630
+ /**
631
+ * @param {Function} fn
632
+ * @return {!angular.JQLite}
633
+ */
634
+ angular.JQLite.prototype.ready = function(fn) {};
635
+
636
+ /**
637
+ * @return {!angular.JQLite}
638
+ */
639
+ angular.JQLite.prototype.remove = function() {};
640
+
641
+ /**
642
+ * @param {string} name
643
+ * @return {!angular.JQLite}
644
+ */
645
+ angular.JQLite.prototype.removeAttr = function(name) {};
646
+
647
+ /**
648
+ * @param {string} name
649
+ * @return {!angular.JQLite}
650
+ */
651
+ angular.JQLite.prototype.removeClass = function(name) {};
652
+
653
+ /**
654
+ * @param {string=} opt_name
655
+ * @return {!angular.JQLite}
656
+ */
657
+ angular.JQLite.prototype.removeData = function(opt_name) {};
658
+
659
+ /**
660
+ * @param {JQLiteSelector} element
661
+ * @return {!angular.JQLite}
662
+ */
663
+ angular.JQLite.prototype.replaceWith = function(element) {};
664
+
665
+ /**
666
+ * @return {!angular.Scope}
667
+ */
668
+ angular.JQLite.prototype.scope = function() {};
669
+
670
+ /**
671
+ * @param {string=} opt_value
672
+ * @return {!angular.JQLite|string}
673
+ */
674
+ angular.JQLite.prototype.text = function(opt_value) {};
675
+
676
+ /**
677
+ * @param {string} name
678
+ * @param {boolean=} opt_condition
679
+ * @return {!angular.JQLite}
680
+ */
681
+ angular.JQLite.prototype.toggleClass = function(name, opt_condition) {};
682
+
683
+ /**
684
+ * @param {string|!Event} typeOrEvent
685
+ * @param {*=} opt_value
686
+ * @return {!angular.JQLite}
687
+ */
688
+ angular.JQLite.prototype.triggerHandler = function(typeOrEvent, opt_value) {};
689
+
690
+ /**
691
+ * @param {string=} opt_type
692
+ * @param {Function=} opt_fn
693
+ * @return {!angular.JQLite}
694
+ */
695
+ angular.JQLite.prototype.unbind = function(opt_type, opt_fn) {};
696
+
697
+ /**
698
+ * @param {string=} opt_value
699
+ * @return {!angular.JQLite|string}
700
+ */
701
+ angular.JQLite.prototype.val = function(opt_value) {};
702
+
703
+ /**
704
+ * @param {JQLiteSelector} element
705
+ * @return {!angular.JQLite}
706
+ */
707
+ angular.JQLite.prototype.wrap = function(element) {};
708
+
709
+
710
+
711
+ /******************************************************************************
712
+ * $provide Service
713
+ *****************************************************************************/
714
+
715
+ /**
716
+ * @interface
717
+ */
718
+ angular.$provide = function() {};
719
+
720
+
721
+ /** @record */
722
+ angular.$provide.Provider = function() {};
723
+
724
+ /** @type {(!Array<string|!Function>|!Function)} */
725
+ angular.$provide.Provider.prototype.$get;
726
+
727
+ /**
728
+ * @param {string} name
729
+ * @param {*} object
730
+ * @return {Object}
731
+ */
732
+ angular.$provide.prototype.constant = function(name, object) {};
733
+
734
+ /**
735
+ * @param {string} name
736
+ * @param {!angular.Injectable} decorator
737
+ */
738
+ angular.$provide.prototype.decorator = function(name, decorator) {};
739
+
740
+ /**
741
+ * @param {string} name
742
+ * @param {angular.Injectable} providerFunction
743
+ * @return {Object}
744
+ */
745
+ angular.$provide.prototype.factory = function(name, providerFunction) {};
746
+
747
+ /**
748
+ * @param {string} name
749
+ * @param {angular.Injectable|angular.$provide.Provider}
750
+ * providerType
751
+ * @return {Object}
752
+ */
753
+ angular.$provide.prototype.provider = function(name, providerType) {};
754
+
755
+ /**
756
+ * @param {string} name
757
+ * @param {angular.Injectable} constructor
758
+ * @return {Object}
759
+ */
760
+ angular.$provide.prototype.service = function(name, constructor) {};
761
+
762
+ /**
763
+ * @param {string} name
764
+ * @param {*} object
765
+ * @return {Object}
766
+ */
767
+ angular.$provide.prototype.value = function(name, object) {};
768
+
769
+
770
+ /******************************************************************************
771
+ * angular.Module
772
+ *****************************************************************************/
773
+
774
+ /** @interface */
775
+ angular.Module = function() {};
776
+
777
+ /**
778
+ * @param {string} name
779
+ * @param {angular.Injectable} animationFactory
780
+ */
781
+ angular.Module.prototype.animation = function(name, animationFactory) {};
782
+
783
+ /**
784
+ * Intended to be called with a name string and a component definition.
785
+ *
786
+ * @param {string} name
787
+ * @param {!angular.Component} componentDefinition
788
+ * @return {!angular.Module}
789
+ */
790
+ angular.Module.prototype.component = function(name, componentDefinition) {};
791
+
792
+ /**
793
+ * @param {angular.Injectable} configFn
794
+ * @return {!angular.Module}
795
+ */
796
+ angular.Module.prototype.config = function(configFn) {};
797
+
798
+ /**
799
+ * @param {string} name
800
+ * @param {*} object
801
+ * @return {!angular.Module}
802
+ */
803
+ angular.Module.prototype.constant = function(name, object) {};
804
+
805
+ /**
806
+ * Intended to be called with either a name string and a constructor, or an
807
+ * Object with names as keys and constructors as values.
808
+ *
809
+ * @param {string|!Object<angular.Injectable>} name
810
+ * @param {angular.Injectable=} opt_constructor
811
+ * @return {!angular.Module}
812
+ */
813
+ angular.Module.prototype.controller = function(name, opt_constructor) {};
814
+
815
+ /**
816
+ * Intended to be called with either a name string and a directive factory, or
817
+ * an Object with names as keys and directive factories as values.
818
+ *
819
+ * @param {string|!Object<angular.Injectable>} name
820
+ * @param {angular.Injectable=} opt_directiveFactory
821
+ * @return {!angular.Module}
822
+ */
823
+ angular.Module.prototype.directive = function(name, opt_directiveFactory) {};
824
+
825
+ /**
826
+ * @param {string} name
827
+ * @param {angular.Injectable} providerFunction
828
+ * @return {!angular.Module}
829
+ */
830
+ angular.Module.prototype.factory = function(name, providerFunction) {};
831
+
832
+ /**
833
+ * @param {string} name
834
+ * @param {angular.Injectable} filterFactory
835
+ * @return {!angular.Module}
836
+ */
837
+ angular.Module.prototype.filter = function(name, filterFactory) {};
838
+
839
+ /**
840
+ * @param {string} name
841
+ * @param {angular.$provide.Provider|angular.Injectable} providerType
842
+ * @return {!angular.Module}
843
+ */
844
+ angular.Module.prototype.provider = function(name, providerType) {};
845
+
846
+ /**
847
+ * @param {angular.Injectable} initializationFn
848
+ * @return {!angular.Module}
849
+ */
850
+ angular.Module.prototype.run = function(initializationFn) {};
851
+
852
+ /**
853
+ * @param {string} name
854
+ * @param {angular.Injectable} constructor
855
+ * @return {!angular.Module}
856
+ */
857
+ angular.Module.prototype.service = function(name, constructor) {};
858
+
859
+ /**
860
+ * @param {string} name
861
+ * @param {*} object
862
+ * @return {!angular.Module}
863
+ */
864
+ angular.Module.prototype.value = function(name, object) {};
865
+
866
+ /**
867
+ * @param {string} name
868
+ * @param {!angular.Injectable} decorator
869
+ * @return {!angular.Module}
870
+ */
871
+ angular.Module.prototype.decorator = function(name, decorator) {};
872
+
873
+ /**
874
+ * @type {string}
875
+ */
876
+ angular.Module.prototype.name;
877
+
878
+ /**
879
+ * @type {Array<string>}
880
+ */
881
+ angular.Module.prototype.requires;
882
+
883
+ /** @interface */
884
+ angular.Scope = function() {};
885
+
886
+ /** @type {?string} */
887
+ angular.Scope.prototype.$$phase;
888
+
889
+ /**
890
+ * @param {(string|function(!angular.Scope))=} opt_exp
891
+ * @return {*}
892
+ */
893
+ angular.Scope.prototype.$apply = function(opt_exp) {};
894
+
895
+ /**
896
+ * @param {(string|function(!angular.Scope))=} opt_exp
897
+ */
898
+ angular.Scope.prototype.$applyAsync = function(opt_exp) {};
899
+
900
+ /**
901
+ * @param {string} name
902
+ * @param {...*} args
903
+ */
904
+ angular.Scope.prototype.$broadcast = function(name, args) {};
905
+
906
+ angular.Scope.prototype.$destroy = function() {};
907
+
908
+ angular.Scope.prototype.$digest = function() {};
909
+
910
+ /**
911
+ * @param {string} name
912
+ * @param {...*} args
913
+ */
914
+ angular.Scope.prototype.$emit = function(name, args) {};
915
+
916
+ /**
917
+ * @param {(string|function(angular.Scope):?)=} opt_exp
918
+ * @param {Object=} opt_locals
919
+ * @return {*}
920
+ */
921
+ angular.Scope.prototype.$eval = function(opt_exp, opt_locals) {};
922
+
923
+ /**
924
+ * @param {(string|function(angular.Scope, ?))=} opt_exp
925
+ * @param {!Object=} opt_locals
926
+ */
927
+ angular.Scope.prototype.$evalAsync = function(opt_exp, opt_locals) {};
928
+
929
+ /** @type {string} */
930
+ angular.Scope.prototype.$id;
931
+
932
+ /**
933
+ * @param {boolean=} opt_isolate
934
+ * @param {angular.Scope=} opt_parent
935
+ * @return {!angular.Scope}
936
+ */
937
+ angular.Scope.prototype.$new = function(opt_isolate, opt_parent) {};
938
+
939
+ /** @type {!angular.Scope} */
940
+ angular.Scope.prototype.$parent;
941
+
942
+ /** @type {!angular.Scope} */
943
+ angular.Scope.prototype.$root;
944
+
945
+ /**
946
+ * @param {string|!Function} exp
947
+ * @param {(string|Function)=} opt_listener
948
+ * @param {boolean=} opt_objectEquality
949
+ * @return {function()}
950
+ */
951
+ angular.Scope.prototype.$watch =
952
+ function(exp, opt_listener, opt_objectEquality) {};
953
+
954
+ /**
955
+ * @param {string|!Function} exp
956
+ * @param {(string|Function)=} opt_listener
957
+ * @return {function()}
958
+ */
959
+ angular.Scope.prototype.$watchCollection = function(exp, opt_listener) {};
960
+
961
+ /**
962
+ * @param {Array<string|!Function>} exps
963
+ * @param {(string|Function)=} opt_listener
964
+ * @return {function()}
965
+ */
966
+ angular.Scope.prototype.$watchGroup = function(exps, opt_listener) {};
967
+
968
+ /**
969
+ * @interface
970
+ */
971
+ angular.Scope.Event = function() {};
972
+
973
+ /** @type {!angular.Scope} */
974
+ angular.Scope.Event.prototype.currentScope;
975
+
976
+ /** @type {boolean} */
977
+ angular.Scope.Event.prototype.defaultPrevented;
978
+
979
+ /** @type {string} */
980
+ angular.Scope.Event.prototype.name;
981
+
982
+ angular.Scope.Event.prototype.preventDefault = function() {};
983
+
984
+ angular.Scope.Event.prototype.stopPropagation = function() {};
985
+
986
+ /** @type {!angular.Scope} */
987
+ angular.Scope.Event.prototype.targetScope;
988
+
989
+
990
+ /**
991
+ * @param {string} name
992
+ * @param {function(!angular.Scope.Event, ...?)} listener
993
+ * @return {function()}
994
+ */
995
+ angular.Scope.prototype.$on = function(name, listener) {};
996
+
997
+
998
+ /**
999
+ * @type {!Object}
1000
+ */
1001
+ angular.version = {};
1002
+
1003
+ /**
1004
+ * @type {string}
1005
+ */
1006
+ angular.version.full = '';
1007
+
1008
+ /**
1009
+ * @type {number}
1010
+ */
1011
+ angular.version.major = 0;
1012
+
1013
+ /**
1014
+ * @type {number}
1015
+ */
1016
+ angular.version.minor = 0;
1017
+
1018
+ /**
1019
+ * @type {number}
1020
+ */
1021
+ angular.version.dot = 0;
1022
+
1023
+ /**
1024
+ * @type {string}
1025
+ */
1026
+ angular.version.codeName = '';
1027
+
1028
+ /******************************************************************************
1029
+ * $anchorScroll Service
1030
+ *****************************************************************************/
1031
+
1032
+ /**
1033
+ * @typedef {function(string=)}
1034
+ */
1035
+ angular.$anchorScroll;
1036
+
1037
+ /******************************************************************************
1038
+ * $anchorScrollProvider Service
1039
+ *****************************************************************************/
1040
+
1041
+ /** @interface */
1042
+ angular.$anchorScrollProvider = function() {};
1043
+
1044
+ angular.$anchorScrollProvider.prototype.disableAutoScrolling = function() {};
1045
+
1046
+ /******************************************************************************
1047
+ * $animate Service
1048
+ *****************************************************************************/
1049
+
1050
+ /**
1051
+ * @interface
1052
+ */
1053
+ angular.$animate = function() {};
1054
+
1055
+ /**
1056
+ * @param {JQLiteSelector} element
1057
+ * @param {Object} from
1058
+ * @param {Object} to
1059
+ * @param {string=} opt_className
1060
+ * @param {Object<string, *>=} opt_options
1061
+ * @return {!angular.$q.Promise}
1062
+ */
1063
+ angular.$animate.prototype.animate = function(
1064
+ element, from, to, opt_className, opt_options) {};
1065
+
1066
+ /**
1067
+ * @param {string} event
1068
+ * @param {JQLiteSelector} container
1069
+ * @param {function(JQLiteSelector, string)} callback
1070
+ */
1071
+ angular.$animate.prototype.on = function(event, container, callback) {};
1072
+
1073
+ /**
1074
+ * @param {string} event
1075
+ * @param {JQLiteSelector=} opt_container
1076
+ * @param {function(JQLiteSelector, string)=} opt_callback
1077
+ */
1078
+ angular.$animate.prototype.off = function(event, opt_container, opt_callback) {
1079
+ };
1080
+
1081
+ /**
1082
+ * @param {JQLiteSelector} element
1083
+ * @param {JQLiteSelector} parentElement
1084
+ */
1085
+ angular.$animate.prototype.pin = function(element, parentElement) {};
1086
+
1087
+ /**
1088
+ * @param {JQLiteSelector} element
1089
+ * @param {JQLiteSelector} parentElement
1090
+ * @param {JQLiteSelector} afterElement
1091
+ * @param {Object<string, *>=} opt_options
1092
+ * @return {!angular.$q.Promise}
1093
+ */
1094
+ angular.$animate.prototype.enter = function(
1095
+ element, parentElement, afterElement, opt_options) {};
1096
+
1097
+ /**
1098
+ * @param {JQLiteSelector} element
1099
+ * @param {Object<string, *>=} opt_options
1100
+ * @return {!angular.$q.Promise}
1101
+ */
1102
+ angular.$animate.prototype.leave = function(element, opt_options) {};
1103
+
1104
+ /**
1105
+ * @param {JQLiteSelector} element
1106
+ * @param {JQLiteSelector} parentElement
1107
+ * @param {JQLiteSelector} afterElement
1108
+ * @param {Object<string, *>=} opt_options
1109
+ * @return {!angular.$q.Promise}
1110
+ */
1111
+ angular.$animate.prototype.move = function(
1112
+ element, parentElement, afterElement, opt_options) {};
1113
+
1114
+ /**
1115
+ * @param {JQLiteSelector} element
1116
+ * @param {string} className
1117
+ * @param {Object<string, *>=} opt_options
1118
+ * @return {!angular.$q.Promise}
1119
+ */
1120
+ angular.$animate.prototype.addClass = function(
1121
+ element, className, opt_options) {};
1122
+
1123
+ /**
1124
+ * @param {JQLiteSelector} element
1125
+ * @param {string} className
1126
+ * @param {Object<string, *>=} opt_options
1127
+ * @return {!angular.$q.Promise}
1128
+ */
1129
+ angular.$animate.prototype.removeClass = function(
1130
+ element, className, opt_options) {};
1131
+
1132
+ /**
1133
+ * @param {JQLiteSelector} element
1134
+ * @param {string} add
1135
+ * @param {string} remove
1136
+ * @param {Object<string, *>=} opt_options
1137
+ * @return {!angular.$q.Promise}
1138
+ */
1139
+ angular.$animate.prototype.setClass = function(
1140
+ element, add, remove, opt_options) {};
1141
+
1142
+ /**
1143
+ * @param {(boolean|JQLiteSelector)=} opt_elementOrValue
1144
+ * @param {boolean=} opt_value
1145
+ * @return {boolean}
1146
+ */
1147
+ angular.$animate.prototype.enabled = function(opt_elementOrValue, opt_value) {};
1148
+
1149
+ /**
1150
+ * @param {angular.$q.Promise} animationPromise
1151
+ */
1152
+ angular.$animate.prototype.cancel = function(animationPromise) {};
1153
+
1154
+ /******************************************************************************
1155
+ * $animateProvider Service
1156
+ *****************************************************************************/
1157
+
1158
+ /**
1159
+ * @interface
1160
+ */
1161
+ angular.$animateProvider = function() {};
1162
+
1163
+ /**
1164
+ * @param {string} name
1165
+ * @param {Function} factory
1166
+ */
1167
+ angular.$animateProvider.prototype.register = function(name, factory) {};
1168
+
1169
+ /**
1170
+ * @param {RegExp=} opt_expression
1171
+ */
1172
+ angular.$animateProvider.prototype.classNameFilter = function(
1173
+ opt_expression) {};
1174
+
1175
+ /******************************************************************************
1176
+ * $ariaProvider Service
1177
+ *****************************************************************************/
1178
+
1179
+ /**
1180
+ * @interface
1181
+ */
1182
+ angular.$ariaProvider = function() {};
1183
+
1184
+ /**
1185
+ * @param {!{
1186
+ * ariaHidden: (boolean|undefined),
1187
+ * ariaChecked: (boolean|undefined),
1188
+ * ariaDisabled: (boolean|undefined),
1189
+ * ariaRequired: (boolean|undefined),
1190
+ * ariaInvalid: (boolean|undefined),
1191
+ * ariaMultiline: (boolean|undefined),
1192
+ * ariaValue: (boolean|undefined),
1193
+ * tabindex: (boolean|undefined),
1194
+ * bindKeypress: (boolean|undefined),
1195
+ * bindRoleForClick: (boolean|undefined)
1196
+ * }} config
1197
+ */
1198
+ angular.$ariaProvider.prototype.config = function(config) {};
1199
+
1200
+ /******************************************************************************
1201
+ * $compile Service
1202
+ *****************************************************************************/
1203
+
1204
+ /**
1205
+ * @typedef {
1206
+ * function(
1207
+ * (JQLiteSelector|Object),
1208
+ * function(!angular.Scope, Function=)=, number=):
1209
+ * function(!angular.Scope,
1210
+ * function(!angular.JQLite, !angular.Scope=)=,
1211
+ * angular.compile.LinkOptions=): !angular.JQLite}
1212
+ */
1213
+ angular.$compile;
1214
+
1215
+ /** @const */
1216
+ angular.compile = {}
1217
+
1218
+ /**
1219
+ * @record
1220
+ */
1221
+ angular.compile.LinkOptions = function() {};
1222
+
1223
+ /** @type {!Function|undefined} */
1224
+ angular.compile.LinkOptions.prototype.parentBoundTranscludeFn;
1225
+
1226
+ /** @type {!Object|undefined} */
1227
+ angular.compile.LinkOptions.prototype.transcludeControllers;
1228
+
1229
+ /** @type {!angular.JQLite|undefined} */
1230
+ angular.compile.LinkOptions.prototype.futureParentElement;
1231
+
1232
+ // TODO(martinprobst): remaining $compileProvider methods.
1233
+
1234
+ /**
1235
+ * @interface
1236
+ */
1237
+ angular.$compileProvider = function() {};
1238
+
1239
+ /**
1240
+ * @param {boolean=} opt_enabled
1241
+ * @return {boolean|!angular.$compileProvider}
1242
+ */
1243
+ angular.$compileProvider.prototype.debugInfoEnabled = function(opt_enabled) {};
1244
+
1245
+ /**
1246
+ * @param {number} iterations
1247
+ * @return {boolean|!angular.$compileProvider}
1248
+ */
1249
+ angular.$compileProvider.prototype.onChangesTtl = function(iterations) {};
1250
+
1251
+ /**
1252
+ * @param {!RegExp=} opt_expression
1253
+ * @return {!RegExp|!angular.$compileProvider}
1254
+ */
1255
+ angular.$compileProvider.prototype.aHrefSanitizationWhitelist = function(
1256
+ opt_expression) {};
1257
+
1258
+ /**
1259
+ * @param {!RegExp=} opt_expression
1260
+ * @return {!RegExp|!angular.$compileProvider}
1261
+ */
1262
+ angular.$compileProvider.prototype.imgSrcSanitizationWhitelist = function(
1263
+ opt_expression) {};
1264
+
1265
+ /**
1266
+ * @param {boolean=} opt_enabled
1267
+ * @return {boolean|!angular.$compileProvider}
1268
+ */
1269
+ angular.$compileProvider.prototype.commentDirectivesEnabled = function(
1270
+ opt_enabled) {};
1271
+
1272
+ /**
1273
+ * @param {boolean=} opt_enabled
1274
+ * @return {boolean|!angular.$compileProvider}
1275
+ */
1276
+ angular.$compileProvider.prototype.cssClassDirectivesEnabled = function(
1277
+ opt_enabled) {};
1278
+
1279
+ /**
1280
+ * @param {boolean=} opt_enabled
1281
+ * @return {boolean|!angular.$compileProvider}
1282
+ */
1283
+ angular.$compileProvider.prototype.preAssignBindingsEnabled = function(
1284
+ opt_enabled) {};
1285
+
1286
+ /**
1287
+ * @param {string} name
1288
+ * @param {!angular.Component} options
1289
+ */
1290
+ angular.$compileProvider.prototype.component = function(name, options) {};
1291
+
1292
+ /******************************************************************************
1293
+ * $cacheFactory Service
1294
+ *****************************************************************************/
1295
+
1296
+ /** @const */
1297
+ angular.cacheFactory = {};
1298
+
1299
+ /** @record */
1300
+ angular.cacheFactory.Options = function() {};
1301
+
1302
+ /** @type {number|undefined} */
1303
+ angular.cacheFactory.Options.prototype.capacity;
1304
+
1305
+ /**
1306
+ * @template T
1307
+ * @interface
1308
+ */
1309
+ angular.cacheFactory.Cache = function() {};
1310
+
1311
+ /**
1312
+ * @record
1313
+ */
1314
+ angular.cacheFactory.Cache.Info = function() {};
1315
+
1316
+ /** @type {string} */
1317
+ angular.cacheFactory.Cache.Info.prototype.id;
1318
+
1319
+ /** @type {number} */
1320
+ angular.cacheFactory.Cache.Info.prototype.size;
1321
+
1322
+ /** @type {!angular.cacheFactory.Options} */
1323
+ angular.cacheFactory.Cache.Info.prototype.options;
1324
+
1325
+
1326
+ /**
1327
+ * @return {!angular.cacheFactory.Cache.Info}
1328
+ */
1329
+ angular.cacheFactory.Cache.prototype.info = function() {};
1330
+
1331
+ /**
1332
+ * @param {string} key
1333
+ * @param {T} value
1334
+ */
1335
+ angular.cacheFactory.Cache.prototype.put = function(key, value) {};
1336
+
1337
+ /**
1338
+ * @param {string} key
1339
+ * @return {T}
1340
+ */
1341
+ angular.cacheFactory.Cache.prototype.get = function(key) {};
1342
+
1343
+ /**
1344
+ * @param {string} key
1345
+ */
1346
+ angular.cacheFactory.Cache.prototype.remove = function(key) {};
1347
+
1348
+ angular.cacheFactory.Cache.prototype.removeAll = function() {};
1349
+ angular.cacheFactory.Cache.prototype.destroy = function() {};
1350
+
1351
+
1352
+
1353
+ /**
1354
+ * @typedef {
1355
+ * function(string, angular.cacheFactory.Options=):
1356
+ * !angular.cacheFactory.Cache}
1357
+ */
1358
+ angular.$cacheFactory;
1359
+
1360
+ /**
1361
+ * Augment the angular.$cacheFactory type definition by reopening the type via
1362
+ * an artificial angular.$cacheFactory instance.
1363
+ *
1364
+ * This allows us to define methods on function objects which is something
1365
+ * that can't be expressed via typical type annotations.
1366
+ *
1367
+ * @type {angular.$cacheFactory}
1368
+ */
1369
+ angular.$cacheFactory_;
1370
+
1371
+ /**
1372
+ * @return {!angular.cacheFactory.Cache|undefined}
1373
+ */
1374
+ angular.$cacheFactory_.get;
1375
+
1376
+
1377
+ /******************************************************************************
1378
+ * $controller Service
1379
+ *****************************************************************************/
1380
+
1381
+ /**
1382
+ * @typedef {function((Function|string), !Object): !Object}
1383
+ */
1384
+ angular.$controller;
1385
+
1386
+
1387
+ /******************************************************************************
1388
+ * $controllerProvider Service
1389
+ *****************************************************************************/
1390
+
1391
+ /**
1392
+ * @record
1393
+ */
1394
+ angular.$controllerProvider = function() {};
1395
+
1396
+ /**
1397
+ * @param {string|!Object} a
1398
+ * @param {!angular.Injectable=} b
1399
+ */
1400
+ angular.$controllerProvider.prototype.register = function(a, b) {};
1401
+
1402
+ /**
1403
+ */
1404
+ angular.$controllerProvider.prototype.allowGlobals = function() {};
1405
+
1406
+ /******************************************************************************
1407
+ * $cookies Service
1408
+ *****************************************************************************/
1409
+
1410
+ /**
1411
+ * @interface
1412
+ */
1413
+ angular.$cookies = function() {};
1414
+
1415
+ /**
1416
+ * See:
1417
+ * https://docs.angularjs.org/api/ngCookies/provider/$cookiesProvider#defaults
1418
+ * @record
1419
+ */
1420
+ angular.$cookies.Config = function() {};
1421
+
1422
+ /** @type {string|undefined} */
1423
+ angular.$cookies.Config.prototype.path;
1424
+
1425
+ /** @type {string|undefined} */
1426
+ angular.$cookies.Config.prototype.domain;
1427
+
1428
+ /** @type {string|!Date|undefined} */
1429
+ angular.$cookies.Config.prototype.date;
1430
+
1431
+ /** @type {boolean|undefined} */
1432
+ angular.$cookies.Config.prototype.secure;
1433
+
1434
+
1435
+ /**
1436
+ * @param {string} key
1437
+ * @return {string|undefined}
1438
+ */
1439
+ angular.$cookies.prototype.get = function(key) {};
1440
+
1441
+ /**
1442
+ * @param {string} key
1443
+ * @return {?Object|undefined}
1444
+ */
1445
+ angular.$cookies.prototype.getObject = function(key) {};
1446
+
1447
+ /**
1448
+ * @return {!Object<string, string>}
1449
+ */
1450
+ angular.$cookies.prototype.getAll = function() {};
1451
+
1452
+ /**
1453
+ * @param {string} key
1454
+ * @param {string} value
1455
+ * @param {!angular.$cookies.Config=} opt_options
1456
+ */
1457
+ angular.$cookies.prototype.put = function(key, value, opt_options) {};
1458
+
1459
+ /**
1460
+ * @param {string} key
1461
+ * @param {?Object} value
1462
+ * @param {!angular.$cookies.Config=} opt_options
1463
+ */
1464
+ angular.$cookies.prototype.putObject = function(key, value, opt_options) {};
1465
+
1466
+ /**
1467
+ * @param {string} key
1468
+ * @param {!angular.$cookies.Config=} opt_options
1469
+ */
1470
+ angular.$cookies.prototype.remove = function(key, opt_options) {};
1471
+
1472
+
1473
+ /**
1474
+ * @interface
1475
+ */
1476
+ angular.$cookiesProvider = function() {};
1477
+
1478
+ /**
1479
+ * @type {!angular.$cookies.Config}
1480
+ */
1481
+ angular.$cookiesProvider.prototype.defaults;
1482
+
1483
+ /******************************************************************************
1484
+ * $exceptionHandler Service
1485
+ *****************************************************************************/
1486
+
1487
+ /**
1488
+ * @typedef {function(!Error, string=)}
1489
+ */
1490
+ angular.$exceptionHandler;
1491
+
1492
+ /******************************************************************************
1493
+ * $filter Service
1494
+ *****************************************************************************/
1495
+
1496
+ /**
1497
+ * @typedef {function(string): !Function}
1498
+ */
1499
+ angular.$filter;
1500
+
1501
+ /**
1502
+ * Augment the angular.$filter type definition by reopening the type via
1503
+ * an artificial angular.$filter instance.
1504
+ *
1505
+ * This allows us to define methods on function objects which is something
1506
+ * that can't be expressed via typical type annotations.
1507
+ *
1508
+ * @type {angular.$filter}
1509
+ */
1510
+ angular.$filter_;
1511
+
1512
+ /**
1513
+ * The 'orderBy' filter is available through $filterProvider and AngularJS
1514
+ * injection; but is not accessed through a documented public API of AngularJS.
1515
+ * <p>In current AngularJS version the injection is satisfied by
1516
+ * angular.orderByFunction, where the implementation is found.
1517
+ * <p>See http://docs.angularjs.org/api/ng.filter:orderBy.
1518
+ * @typedef {function(Array,
1519
+ * (string|function(?):*|Array<(string|function(?):*)>),
1520
+ * boolean=): Array}
1521
+ */
1522
+ angular.$filter_.orderBy;
1523
+
1524
+ /**
1525
+ * @typedef {function(Array,
1526
+ * (string|Object|function(?):*),
1527
+ * (function(?):*|boolean)=): Array}
1528
+ */
1529
+ angular.$filter_.filter;
1530
+
1531
+
1532
+ /******************************************************************************
1533
+ * $filterProvider Service
1534
+ *****************************************************************************/
1535
+
1536
+ /**
1537
+ * @interface
1538
+ */
1539
+ angular.$filterProvider = function() {};
1540
+
1541
+ /**
1542
+ * @param {string} name
1543
+ * @param {!angular.Injectable} fn
1544
+ */
1545
+ angular.$filterProvider.prototype.register = function(name, fn) {};
1546
+
1547
+ /******************************************************************************
1548
+ * $http Service
1549
+ *****************************************************************************/
1550
+
1551
+ /** @interface */
1552
+ angular.$http = function() {};
1553
+
1554
+ /** @record */
1555
+ angular.$http.Config = function() {};
1556
+
1557
+
1558
+ /** @type {(boolean|!angular.cacheFactory.Cache|undefined)} */
1559
+ angular.$http.Config.prototype.cache
1560
+
1561
+ /** @type {(string|!Object|undefined)} */
1562
+ angular.$http.Config.prototype.data
1563
+
1564
+ /** @type {(Object<?string|undefined>|undefined)} */
1565
+ angular.$http.Config.prototype.headers;
1566
+
1567
+ /** @type {(string|undefined)} */
1568
+ angular.$http.Config.prototype.jsonpCallbackParam;
1569
+
1570
+ /** @type {(string|undefined)} */
1571
+ angular.$http.Config.prototype.method;
1572
+
1573
+ /** @type {(?Object<(boolean|number|string|Object)>|undefined)} */
1574
+ angular.$http.Config.prototype.params;
1575
+
1576
+ /** @type {(string|function(Object<string,string>):string|undefined)} */
1577
+ angular.$http.Config.prototype.paramSerializer;
1578
+
1579
+ /** @type {(string|undefined)} */
1580
+ angular.$http.Config.prototype.responseType;
1581
+
1582
+ /** @type {(number|!angular.$q.Promise|undefined)} */
1583
+ angular.$http.Config.prototype.timeout;
1584
+
1585
+ /**
1586
+ * @type {
1587
+ * (undefined|
1588
+ * function(?, Object):?|
1589
+ * Array<function(?, Object):?>)
1590
+ * }
1591
+ */
1592
+ angular.$http.Config.prototype.transformRequest;
1593
+
1594
+ /**
1595
+ * @type {
1596
+ * (undefined|
1597
+ * function(?, Object, Object):?|
1598
+ * Array<function(?, Object, Object):?>)
1599
+ * }
1600
+ */
1601
+ angular.$http.Config.prototype.transformResponse;
1602
+
1603
+ /** @type {(string|undefined)} */
1604
+ angular.$http.Config.prototype.url;
1605
+
1606
+ /** @type {(boolean|undefined)} */
1607
+ angular.$http.Config.prototype.withCredentials;
1608
+
1609
+ /** @type {(string|undefined)} */
1610
+ angular.$http.Config.prototype.xsrfCookieName;
1611
+
1612
+ /** @type {(string|undefined)} */
1613
+ angular.$http.Config.prototype.xsrfHeaderName;
1614
+
1615
+
1616
+
1617
+ /**
1618
+ * Externs are parsed as ES5, so using 'delete'
1619
+ * should be fine, even though it is a reserved word.
1620
+ *
1621
+ * @param {angular.$http.Config=} opt_config
1622
+ * @return {!angular.$http.HttpPromise}
1623
+ */
1624
+ angular.$http.prototype.delete = function(url, opt_config) {};
1625
+
1626
+ /**
1627
+ * @param {string} url
1628
+ * @param {angular.$http.Config=} opt_config
1629
+ * @return {!angular.$http.HttpPromise}
1630
+ */
1631
+ angular.$http.prototype.get = function(url, opt_config) {};
1632
+
1633
+ /**
1634
+ * @param {string} url
1635
+ * @param {angular.$http.Config=} opt_config
1636
+ * @return {!angular.$http.HttpPromise}
1637
+ */
1638
+ angular.$http.prototype.head = function(url, opt_config) {};
1639
+
1640
+ /**
1641
+ * @param {string} url
1642
+ * @param {angular.$http.Config=} opt_config
1643
+ * @return {!angular.$http.HttpPromise}
1644
+ */
1645
+ angular.$http.prototype.jsonp = function(url, opt_config) {};
1646
+
1647
+ /**
1648
+ * @param {string} url
1649
+ * @param {*} data
1650
+ * @param {angular.$http.Config=} opt_config
1651
+ * @return {!angular.$http.HttpPromise}
1652
+ */
1653
+ angular.$http.prototype.patch = function(url, data, opt_config) {};
1654
+
1655
+ /**
1656
+ * @param {string} url
1657
+ * @param {*} data
1658
+ * @param {angular.$http.Config=} opt_config
1659
+ * @return {!angular.$http.HttpPromise}
1660
+ */
1661
+ angular.$http.prototype.post = function(url, data, opt_config) {};
1662
+
1663
+ /**
1664
+ * @param {string} url
1665
+ * @param {*} data
1666
+ * @param {angular.$http.Config=} opt_config
1667
+ * @return {!angular.$http.HttpPromise}
1668
+ */
1669
+ angular.$http.prototype.put = function(url, data, opt_config) {};
1670
+
1671
+ /**
1672
+ * @type {angular.$http.Config}
1673
+ */
1674
+ angular.$http.prototype.defaults;
1675
+
1676
+ /**
1677
+ * @type {!Array<!angular.$http.Config>}
1678
+ * @const
1679
+ */
1680
+ angular.$http.prototype.pendingRequests;
1681
+
1682
+ /** @record */
1683
+ angular.$http.Interceptor = function() {};
1684
+
1685
+ /** @type {undefined|(function(!angular.$http.Config))} */
1686
+ angular.$http.Interceptor.prototype.request;
1687
+
1688
+ /** @type {(undefined|(function(Object): !angular.$q.Promise|Object))} */
1689
+ angular.$http.Interceptor.prototype.requestError;
1690
+
1691
+ /**
1692
+ * @type {(undefined|
1693
+ * (function(!angular.$http.Response):
1694
+ * !angular.$http.Response|
1695
+ * !angular.$q.Promise<!angular.$http.Response>))}
1696
+ */
1697
+ angular.$http.Interceptor.prototype.response;
1698
+
1699
+ /**
1700
+ * @type {(undefined|(function(Object): !angular.$q.Promise|Object))} */
1701
+ angular.$http.Interceptor.prototype.responseError;
1702
+
1703
+ /**
1704
+ * @interface
1705
+ */
1706
+ angular.$HttpProvider = function() {};
1707
+
1708
+ /**
1709
+ * @type {angular.$http.Config}
1710
+ */
1711
+ angular.$HttpProvider.prototype.defaults;
1712
+
1713
+ /**
1714
+ * @type {!Array<string|function(...?): !angular.$http.Interceptor>}
1715
+ */
1716
+ angular.$HttpProvider.prototype.interceptors;
1717
+
1718
+ /**
1719
+ * @param {boolean=} opt_value
1720
+ * @return {boolean|!angular.$HttpProvider}
1721
+ */
1722
+ angular.$HttpProvider.prototype.useApplyAsync = function(opt_value) {};
1723
+
1724
+ /**
1725
+ * @param {boolean=} opt_value
1726
+ * @return {boolean|!angular.$HttpProvider}
1727
+ */
1728
+ angular.$HttpProvider.prototype.useLegacyPromiseExtensions = function(
1729
+ opt_value) {};
1730
+
1731
+
1732
+ /** @typedef {function((string|?Object)): string} */
1733
+ angular.$httpParamSerializer;
1734
+
1735
+ /******************************************************************************
1736
+ * $injector Service
1737
+ *****************************************************************************/
1738
+
1739
+ /**
1740
+ * @interface
1741
+ */
1742
+ angular.$injector = function() {};
1743
+
1744
+ /**
1745
+ * @param {angular.Injectable} fn
1746
+ * @return {Array<string>}
1747
+ */
1748
+ angular.$injector.prototype.annotate = function(fn) {};
1749
+
1750
+ /**
1751
+ * @param {string} name
1752
+ * @return {?}
1753
+ */
1754
+ angular.$injector.prototype.get = function(name) {};
1755
+
1756
+ /**
1757
+ * @param {string} name
1758
+ * @return {boolean}
1759
+ */
1760
+ angular.$injector.prototype.has = function(name) {};
1761
+
1762
+ /**
1763
+ * @param {!Function} type
1764
+ * @param {Object=} opt_locals
1765
+ * @return {Object}
1766
+ */
1767
+ angular.$injector.prototype.instantiate = function(type, opt_locals) {};
1768
+
1769
+ /**
1770
+ * @param {angular.Injectable} fn
1771
+ * @param {Object=} opt_self
1772
+ * @param {Object=} opt_locals
1773
+ * @return {?}
1774
+ */
1775
+ angular.$injector.prototype.invoke = function(fn, opt_self, opt_locals) {};
1776
+
1777
+ /******************************************************************************
1778
+ * $interpolateProvider Service
1779
+ *****************************************************************************/
1780
+
1781
+ /**
1782
+ * @interface
1783
+ */
1784
+ angular.$interpolateProvider = function() {};
1785
+
1786
+ /** @type {function(string)} */
1787
+ angular.$interpolateProvider.prototype.startSymbol;
1788
+
1789
+ /** @type {function(string)} */
1790
+ angular.$interpolateProvider.prototype.endSymbol;
1791
+
1792
+ /******************************************************************************
1793
+ * $interpolate Service
1794
+ *****************************************************************************/
1795
+
1796
+ /**
1797
+ * @typedef {function(string, boolean=, string=, boolean=):?function(Object):*}
1798
+ */
1799
+ angular.$interpolate;
1800
+
1801
+ /******************************************************************************
1802
+ * $interval Service
1803
+ *****************************************************************************/
1804
+
1805
+ /**
1806
+ * @typedef {
1807
+ * function(function(), number=, number=, boolean=):!angular.$q.Promise
1808
+ * }
1809
+ */
1810
+ angular.$interval;
1811
+
1812
+ /**
1813
+ * Augment the angular.$interval type definition by reopening the type via an
1814
+ * artificial angular.$interval instance.
1815
+ *
1816
+ * This allows us to define methods on function objects which is something
1817
+ * that can't be expressed via typical type annotations.
1818
+ *
1819
+ * @type {angular.$interval}
1820
+ */
1821
+ angular.$interval_;
1822
+
1823
+ /**
1824
+ * @type {function(!angular.$q.Promise):boolean}
1825
+ */
1826
+ angular.$interval_.cancel = function(promise) {};
1827
+
1828
+
1829
+ /******************************************************************************
1830
+ * $locale Service
1831
+ *****************************************************************************/
1832
+
1833
+ /**
1834
+ * @interface
1835
+ */
1836
+ angular.$locale = function() {};
1837
+
1838
+ /**
1839
+ * @type {string}
1840
+ */
1841
+ angular.$locale.prototype.id;
1842
+
1843
+ /******************************************************************************
1844
+ * $location Service
1845
+ *****************************************************************************/
1846
+
1847
+ /**
1848
+ * @interface
1849
+ */
1850
+ angular.$location = function() {};
1851
+
1852
+ /**
1853
+ * @return {string}
1854
+ */
1855
+ angular.$location.prototype.absUrl = function() {};
1856
+
1857
+ /**
1858
+ * @param {string=} opt_hash
1859
+ * @return {string}
1860
+ */
1861
+ angular.$location.prototype.hash = function(opt_hash) {};
1862
+
1863
+ /**
1864
+ * @return {string}
1865
+ */
1866
+ angular.$location.prototype.host = function() {};
1867
+
1868
+ /**
1869
+ * @param {string=} opt_path
1870
+ * @return {string|!angular.$location}
1871
+ */
1872
+ angular.$location.prototype.path = function(opt_path) {};
1873
+
1874
+ /**
1875
+ * @return {number}
1876
+ */
1877
+ angular.$location.prototype.port = function() {};
1878
+
1879
+ /**
1880
+ * @return {string}
1881
+ */
1882
+ angular.$location.prototype.protocol = function() {};
1883
+
1884
+ /**
1885
+ * @type {function()}
1886
+ */
1887
+ angular.$location.prototype.replace = function() {};
1888
+
1889
+ /**
1890
+ * @param {(string|Object<string, string>)=} opt_search
1891
+ * @param {?(string|Array<string>|boolean|number)=} opt_paramValue
1892
+ * @return {(!Object|!angular.$location)}
1893
+ */
1894
+ angular.$location.prototype.search = function(opt_search, opt_paramValue) {};
1895
+
1896
+ /**
1897
+ * @param {string=} opt_url
1898
+ * @return {string}
1899
+ */
1900
+ angular.$location.prototype.url = function(opt_url) {};
1901
+
1902
+ /******************************************************************************
1903
+ * $locationProvider Service
1904
+ *****************************************************************************/
1905
+
1906
+ /**
1907
+ * @interface
1908
+ */
1909
+ angular.$locationProvider = function() {};
1910
+
1911
+ /**
1912
+ * @record
1913
+ */
1914
+ angular.$locationProvider.html5ModeConfig = function() {};
1915
+
1916
+ /** @type {boolean|undefined} */
1917
+ angular.$locationProvider.html5ModeConfig.prototype.enabled;
1918
+
1919
+ /** @type {boolean|undefined} */
1920
+ angular.$locationProvider.html5ModeConfig.prototype.requireBase;
1921
+
1922
+ /**
1923
+ * @param {string=} opt_prefix
1924
+ * @return {string|!angular.$locationProvider}
1925
+ */
1926
+ angular.$locationProvider.prototype.hashPrefix = function(opt_prefix) {};
1927
+
1928
+ /**
1929
+ * @param {(boolean|angular.$locationProvider.html5ModeConfig)=} opt_mode
1930
+ * @return {boolean|!angular.$locationProvider}
1931
+ */
1932
+ angular.$locationProvider.prototype.html5Mode = function(opt_mode) {};
1933
+
1934
+ /******************************************************************************
1935
+ * $logProvider Service
1936
+ *****************************************************************************/
1937
+
1938
+ /** @interface */
1939
+ angular.$logProvider = function() {};
1940
+
1941
+ /**
1942
+ * @param {boolean=} opt_debugEnabled
1943
+ * @return {*}
1944
+ */
1945
+ angular.$logProvider.prototype.debugEnabled = function(opt_debugEnabled) {};
1946
+
1947
+ /******************************************************************************
1948
+ * $log Service
1949
+ *****************************************************************************/
1950
+
1951
+ /**
1952
+ * @interface
1953
+ */
1954
+ angular.$log = function() {};
1955
+
1956
+ /**
1957
+ * @param {...*} var_args
1958
+ */
1959
+ angular.$log.prototype.debug = function(var_args) {};
1960
+
1961
+ /**
1962
+ * @param {...*} var_args
1963
+ */
1964
+ angular.$log.prototype.error = function(var_args) {};
1965
+
1966
+ /**
1967
+ * @param {...*} var_args
1968
+ */
1969
+ angular.$log.prototype.info = function(var_args) {};
1970
+
1971
+ /**
1972
+ * @param {...*} var_args
1973
+ */
1974
+ angular.$log.prototype.log = function(var_args) {};
1975
+
1976
+ /**
1977
+ * @param {...*} var_args
1978
+ */
1979
+ angular.$log.prototype.warn = function(var_args) {};
1980
+
1981
+ /******************************************************************************
1982
+ * NgModelController
1983
+ *****************************************************************************/
1984
+
1985
+ /**
1986
+ * @interface
1987
+ */
1988
+ angular.NgModelController = function() {};
1989
+
1990
+ /**
1991
+ * @type {?}
1992
+ */
1993
+ angular.NgModelController.prototype.$modelValue;
1994
+
1995
+ /**
1996
+ * @type {boolean}
1997
+ */
1998
+ angular.NgModelController.prototype.$dirty;
1999
+
2000
+ /**
2001
+ * @type {!Object<boolean>}
2002
+ */
2003
+ angular.NgModelController.prototype.$error;
2004
+
2005
+ /**
2006
+ * @type {!Array<function(?):*>}
2007
+ */
2008
+ angular.NgModelController.prototype.$formatters;
2009
+
2010
+ /**
2011
+ * @type {boolean}
2012
+ */
2013
+ angular.NgModelController.prototype.$invalid;
2014
+
2015
+ /**
2016
+ * @type {!Array<function(?):*>}
2017
+ */
2018
+ angular.NgModelController.prototype.$parsers;
2019
+
2020
+ /**
2021
+ * @type {boolean}
2022
+ */
2023
+ angular.NgModelController.prototype.$pristine;
2024
+
2025
+ angular.NgModelController.prototype.$render = function() {};
2026
+
2027
+ /**
2028
+ * @param {string} key
2029
+ * @param {boolean} isValid
2030
+ */
2031
+ angular.NgModelController.prototype.$setValidity = function(key, isValid) {};
2032
+
2033
+ /**
2034
+ * @param {?} value
2035
+ */
2036
+ angular.NgModelController.prototype.$setViewValue = function(value) {};
2037
+
2038
+ /**
2039
+ * @type {boolean}
2040
+ */
2041
+ angular.NgModelController.prototype.$valid;
2042
+
2043
+ /**
2044
+ * @type {!Array<function()>}
2045
+ */
2046
+ angular.NgModelController.prototype.$viewChangeListeners;
2047
+
2048
+ /**
2049
+ * @type {?}
2050
+ */
2051
+ angular.NgModelController.prototype.$viewValue;
2052
+
2053
+ /**
2054
+ * @type {!Object<string, function(?, ?):*>}
2055
+ */
2056
+ angular.NgModelController.prototype.$validators;
2057
+
2058
+ /**
2059
+ * @type {Object<string, function(?, ?):*>}
2060
+ */
2061
+ angular.NgModelController.prototype.$asyncValidators;
2062
+
2063
+ /**
2064
+ * @type {boolean}
2065
+ */
2066
+ angular.NgModelController.prototype.$untouched;
2067
+
2068
+ /**
2069
+ * @type {boolean}
2070
+ */
2071
+ angular.NgModelController.prototype.$touched;
2072
+
2073
+ /**
2074
+ * @param {?} value
2075
+ */
2076
+ angular.NgModelController.prototype.$isEmpty = function(value) {};
2077
+
2078
+ /**
2079
+ * @type {function()}
2080
+ */
2081
+ angular.NgModelController.prototype.$setPristine = function() {};
2082
+
2083
+ /**
2084
+ * @type {function()}
2085
+ */
2086
+ angular.NgModelController.prototype.$setDirty = function() {};
2087
+
2088
+ /**
2089
+ * @type {function()}
2090
+ */
2091
+ angular.NgModelController.prototype.$setUntouched = function() {};
2092
+
2093
+ /**
2094
+ * @type {function()}
2095
+ */
2096
+ angular.NgModelController.prototype.$setTouched = function() {};
2097
+
2098
+ /**
2099
+ * @type {function()}
2100
+ */
2101
+ angular.NgModelController.prototype.$rollbackViewValue = function() {};
2102
+
2103
+ /**
2104
+ * @type {function()}
2105
+ */
2106
+ angular.NgModelController.prototype.$validate = function() {};
2107
+
2108
+ /**
2109
+ * @type {function()}
2110
+ */
2111
+ angular.NgModelController.prototype.$commitViewValue = function() {};
2112
+
2113
+ /**
2114
+ * @type {!Object<string, boolean>|undefined}
2115
+ */
2116
+ angular.NgModelController.prototype.$pending;
2117
+
2118
+ /******************************************************************************
2119
+ * FormController
2120
+ *****************************************************************************/
2121
+
2122
+ /**
2123
+ * @interface
2124
+ */
2125
+ angular.FormController = function() {};
2126
+
2127
+ /**
2128
+ * @param {*} control
2129
+ */
2130
+ angular.FormController.prototype.$addControl = function(control) {};
2131
+
2132
+ /**
2133
+ * @type {function()}
2134
+ */
2135
+ angular.FormController.prototype.$rollbackViewValue = function() {};
2136
+
2137
+ /**
2138
+ * @type {function()}
2139
+ */
2140
+ angular.FormController.prototype.$commitViewValue = function() {};
2141
+
2142
+ /**
2143
+ * @type {boolean}
2144
+ */
2145
+ angular.FormController.prototype.$dirty;
2146
+
2147
+ /**
2148
+ * @type {!Object<boolean|!Array<*>>}
2149
+ */
2150
+ angular.FormController.prototype.$error;
2151
+
2152
+ /**
2153
+ * @type {boolean}
2154
+ */
2155
+ angular.FormController.prototype.$invalid;
2156
+
2157
+ /**
2158
+ * @type {string}
2159
+ */
2160
+ angular.FormController.prototype.$name;
2161
+
2162
+ /**
2163
+ * @type {boolean}
2164
+ */
2165
+ angular.FormController.prototype.$pristine;
2166
+
2167
+ /**
2168
+ * @param {*} control
2169
+ */
2170
+ angular.FormController.prototype.$removeControl = function(control) {};
2171
+
2172
+ /**
2173
+ * @type {function()}
2174
+ */
2175
+ angular.FormController.prototype.$setDirty = function() {};
2176
+
2177
+ /**
2178
+ * @type {function()}
2179
+ */
2180
+ angular.FormController.prototype.$setPristine = function() {};
2181
+
2182
+ /**
2183
+ * @type {function()}
2184
+ */
2185
+ angular.FormController.prototype.$setUntouched = function() {};
2186
+
2187
+ /**
2188
+ * @type {function()}
2189
+ */
2190
+ angular.FormController.prototype.$setSubmitted = function() {};
2191
+
2192
+ /**
2193
+ * @type {boolean}
2194
+ */
2195
+ angular.FormController.prototype.$submitted;
2196
+
2197
+ /**
2198
+ * @param {string} validationToken
2199
+ * @param {boolean} isValid
2200
+ * @param {*} control
2201
+ */
2202
+ angular.FormController.prototype.$setValidity = function(
2203
+ validationToken, isValid, control) {};
2204
+
2205
+ /**
2206
+ * @type {boolean}
2207
+ */
2208
+ angular.FormController.prototype.$valid;
2209
+
2210
+ /******************************************************************************
2211
+ * $parse Service
2212
+ *****************************************************************************/
2213
+
2214
+ /**
2215
+ * @typedef {function(string):!angular.parse.Expression}
2216
+ */
2217
+ angular.$parse;
2218
+
2219
+ /** @const */
2220
+ angular.parse = {};
2221
+
2222
+ /**
2223
+ * @typedef {function((!angular.Scope|!Object), Object=):*}
2224
+ */
2225
+ angular.parse.Expression;
2226
+
2227
+ /**
2228
+ * Augment the angular.parse.Expression type definition by reopening the type
2229
+ * via an artificial angular.$parse instance.
2230
+ *
2231
+ * This allows us to define methods on function objects which is something
2232
+ * that can't be expressed via typical type annotations.
2233
+ *
2234
+ * @type {angular.parse.Expression}
2235
+ */
2236
+ angular.$parse_;
2237
+
2238
+ /**
2239
+ * @type {function((!angular.Scope|!Object), *)}
2240
+ */
2241
+ angular.$parse_.assign = function(scope, newValue) {};
2242
+
2243
+
2244
+ /******************************************************************************
2245
+ * $rootScopeProvider
2246
+ *****************************************************************************/
2247
+
2248
+ /** @interface */
2249
+ angular.$rootScopeProvider = function() {};
2250
+
2251
+ /**
2252
+ * @param {number} limit
2253
+ */
2254
+ angular.$rootScopeProvider.prototype.digestTtl = function(limit) {};
2255
+
2256
+ /******************************************************************************
2257
+ * $routeParams Service
2258
+ *****************************************************************************/
2259
+
2260
+ // TODO: This should be !Object<string|boolean> because valueless query params
2261
+ // (without even an equal sign) come through as boolean "true".
2262
+
2263
+ /** @typedef {!Object<string>} */
2264
+ angular.$routeParams;
2265
+
2266
+
2267
+ /******************************************************************************
2268
+ * $routeProvider Service
2269
+ *****************************************************************************/
2270
+
2271
+ /** @interface */
2272
+ angular.$routeProvider = function() {};
2273
+
2274
+
2275
+ /** @record */
2276
+ angular.$routeProvider.Params = function() {};
2277
+
2278
+ /** @type {!angular.Injectable|string|undefined} */
2279
+ angular.$routeProvider.Params.prototype.controller;
2280
+
2281
+ /** @type {string|undefined} */
2282
+ angular.$routeProvider.Params.prototype.controllerAs;
2283
+
2284
+ /** @type {string|undefined} */
2285
+ angular.$routeProvider.Params.prototype.template;
2286
+
2287
+ /** @type {string|!Object|function(!Object<string,string>=)} */
2288
+ angular.$routeProvider.Params.templateUrl;
2289
+
2290
+ /** @type {undefined|
2291
+ * !Object<string,(string|!angular.Injectable|!angular.$q.Promise)>} */
2292
+ angular.$routeProvider.Params.prototype.resolve;
2293
+
2294
+ /** @type {string|undefined|function(!Object<string>, string, !Object): string}
2295
+ */
2296
+ angular.$routeProvider.Params.prototype.redirectTo;
2297
+
2298
+ /** @type {boolean|undefined} */
2299
+ angular.$routeProvider.Params.prototype.reloadOnSearch;
2300
+
2301
+
2302
+ /**
2303
+ * @param {(string|!angular.$routeProvider.Params)} params
2304
+ * @return {!angular.$routeProvider}
2305
+ */
2306
+ angular.$routeProvider.prototype.otherwise = function(params) {};
2307
+
2308
+ /**
2309
+ * @param {string} path
2310
+ * @param {angular.$routeProvider.Params} route
2311
+ * @return {!angular.$routeProvider}
2312
+ */
2313
+ angular.$routeProvider.prototype.when = function(path, route) {};
2314
+
2315
+ /******************************************************************************
2316
+ * $route Service
2317
+ *****************************************************************************/
2318
+
2319
+ /** @interface */
2320
+ angular.$route = function() {};
2321
+
2322
+ /** @type {function()} */
2323
+ angular.$route.prototype.reload = function() {};
2324
+
2325
+ /**
2326
+ * @param {!Object<string, string>} object
2327
+ */
2328
+ angular.$route.prototype.updateParams = function(object) {};
2329
+
2330
+ /** @type {!angular.$route.Route} */
2331
+ angular.$route.prototype.current;
2332
+
2333
+ /** @type {Object<?string, !angular.$route.Route>} */
2334
+ angular.$route.prototype.routes;
2335
+
2336
+ /** @interface */
2337
+ angular.$route.Route = function() {};
2338
+
2339
+ /** @type {angular.$routeProvider.Params} */
2340
+ angular.$route.Route.prototype.$route;
2341
+
2342
+ /** @type {Object<string, *>} */
2343
+ angular.$route.Route.prototype.locals;
2344
+
2345
+ /** @type {Object<string, string>} */
2346
+ angular.$route.Route.prototype.params;
2347
+
2348
+ /** @type {Object<string, string>} */
2349
+ angular.$route.Route.prototype.pathParams;
2350
+
2351
+ /** @type {Object<string, *>} */
2352
+ angular.$route.Route.prototype.scope;
2353
+
2354
+ /** @type {string|undefined} */
2355
+ angular.$route.Route.prototype.originalPath;
2356
+
2357
+ /** @type {RegExp|undefined} */
2358
+ angular.$route.Route.prototype.regexp;
2359
+
2360
+
2361
+ /******************************************************************************
2362
+ * $sanitize Service
2363
+ *****************************************************************************/
2364
+
2365
+ /** @typedef {function(string):string} */
2366
+ angular.$sanitize;
2367
+
2368
+ /******************************************************************************
2369
+ * $sce Service
2370
+ *****************************************************************************/
2371
+
2372
+ /**
2373
+ * Ref: http://docs.angularjs.org/api/ng.$sce
2374
+ *
2375
+ * @interface
2376
+ */
2377
+ angular.$sce = function() {};
2378
+
2379
+
2380
+ /** @const {string} */
2381
+ angular.$sce.prototype.HTML;
2382
+
2383
+ /** @const {string} */
2384
+ angular.$sce.prototype.CSS;
2385
+
2386
+ /** @const {string} */
2387
+ angular.$sce.prototype.URL;
2388
+
2389
+ /** @const {string} */
2390
+ angular.$sce.prototype.JS;
2391
+
2392
+ /** @const {string} */
2393
+ angular.$sce.prototype.RESOURCE_URL;
2394
+
2395
+ /** @return {boolean} */
2396
+ angular.$sce.prototype.isEnabled = function() {};
2397
+
2398
+ /**
2399
+ * @param {string} type
2400
+ * @param {string} expression
2401
+ * @return {!angular.parse.Expression}
2402
+ */
2403
+ angular.$sce.prototype.parseAs = function(type, expression) {};
2404
+
2405
+ /**
2406
+ * @param {string} type
2407
+ * @param {*} maybeTrusted
2408
+ * @return {string}
2409
+ */
2410
+ angular.$sce.prototype.getTrusted = function(type, maybeTrusted) {};
2411
+
2412
+ /**
2413
+ * @param {string} type
2414
+ * @param {string} trustedValue
2415
+ * @return {*}
2416
+ */
2417
+ angular.$sce.prototype.trustAs = function(type, trustedValue) {};
2418
+
2419
+ /**
2420
+ * @param {string} expression
2421
+ * @return {!angular.parse.Expression}
2422
+ */
2423
+ angular.$sce.prototype.parseAsHtml = function(expression) {};
2424
+
2425
+ /**
2426
+ * @param {string} expression
2427
+ * @return {!angular.parse.Expression}
2428
+ */
2429
+ angular.$sce.prototype.parseAsCss = function(expression) {};
2430
+
2431
+ /**
2432
+ * @param {string} expression
2433
+ * @return {!angular.parse.Expression}
2434
+ */
2435
+ angular.$sce.prototype.parseAsUrl = function(expression) {};
2436
+
2437
+ /**
2438
+ * @param {string} expression
2439
+ * @return {!angular.parse.Expression}
2440
+ */
2441
+ angular.$sce.prototype.parseAsJs = function(expression) {};
2442
+
2443
+ /**
2444
+ * @param {string} expression
2445
+ * @return {!angular.parse.Expression}
2446
+ */
2447
+ angular.$sce.prototype.parseAsResourceUrl = function(expression) {};
2448
+
2449
+ /**
2450
+ * @param {*} maybeTrusted
2451
+ * @return {string}
2452
+ */
2453
+ angular.$sce.prototype.getTrustedHtml = function(maybeTrusted) {};
2454
+
2455
+ /**
2456
+ * @param {*} maybeTrusted
2457
+ * @return {string}
2458
+ */
2459
+ angular.$sce.prototype.getTrustedCss = function(maybeTrusted) {};
2460
+
2461
+ /**
2462
+ * @param {*} maybeTrusted
2463
+ * @return {string}
2464
+ */
2465
+ angular.$sce.prototype.getTrustedUrl = function(maybeTrusted) {};
2466
+
2467
+ /**
2468
+ * @param {*} maybeTrusted
2469
+ * @return {string}
2470
+ */
2471
+ angular.$sce.prototype.getTrustedJs = function(maybeTrusted) {};
2472
+
2473
+ /**
2474
+ * @param {*} maybeTrusted
2475
+ * @return {string}
2476
+ */
2477
+ angular.$sce.prototype.getTrustedResourceUrl = function(maybeTrusted) {};
2478
+
2479
+ /**
2480
+ * @param {string} trustedValue
2481
+ * @return {*}
2482
+ */
2483
+ angular.$sce.prototype.trustAsHtml = function(trustedValue) {};
2484
+
2485
+ /**
2486
+ * @param {string} trustedValue
2487
+ * @return {*}
2488
+ */
2489
+ angular.$sce.prototype.trustAsCss = function(trustedValue) {};
2490
+
2491
+ /**
2492
+ * @param {string} trustedValue
2493
+ * @return {*}
2494
+ */
2495
+ angular.$sce.prototype.trustAsUrl = function(trustedValue) {};
2496
+
2497
+ /**
2498
+ * @param {string} trustedValue
2499
+ * @return {*}
2500
+ */
2501
+ angular.$sce.prototype.trustAsJs = function(trustedValue) {};
2502
+
2503
+ /**
2504
+ * @param {string} trustedValue
2505
+ * @return {*}
2506
+ */
2507
+ angular.$sce.prototype.trustAsResourceUrl = function(trustedValue) {};
2508
+
2509
+ /******************************************************************************
2510
+ * $sceDelegate Service
2511
+ *****************************************************************************/
2512
+
2513
+ /**
2514
+ * Ref: http://docs.angularjs.org/api/ng/service/$sceDelegate
2515
+ *
2516
+ * @interface
2517
+ */
2518
+ angular.$sceDelegate = function() {};
2519
+
2520
+ /**
2521
+ * @param {string} type
2522
+ * @param {*} value
2523
+ * @return {*}
2524
+ */
2525
+ angular.$sceDelegate.prototype.trustAs = function(type, value) {};
2526
+
2527
+ /**
2528
+ * Note: because this method overrides Object.prototype.valueOf, the value
2529
+ * parameter needs to be annotated as optional to keep the compiler happy (as
2530
+ * otherwise the signature won't match Object.prototype.valueOf).
2531
+ *
2532
+ * @override
2533
+ * @param {*=} value
2534
+ * @return {*}
2535
+ */
2536
+ angular.$sceDelegate.prototype.valueOf = function(value) {};
2537
+
2538
+ /**
2539
+ * @param {string} type
2540
+ * @param {*} maybeTrusted
2541
+ * @return {*}
2542
+ */
2543
+ angular.$sceDelegate.prototype.getTrusted = function(type, maybeTrusted) {};
2544
+
2545
+ /******************************************************************************
2546
+ * $sceDelegateProvider Service
2547
+ *****************************************************************************/
2548
+
2549
+ /**
2550
+ * Ref: http://docs.angularjs.org/api/ng/provider/$sceDelegateProvider
2551
+ *
2552
+ * @interface
2553
+ */
2554
+ angular.$sceDelegateProvider = function() {};
2555
+
2556
+ /**
2557
+ * @param {Array<string>=} opt_whitelist
2558
+ * @return {!Array<string>}
2559
+ */
2560
+ angular.$sceDelegateProvider.prototype.resourceUrlWhitelist = function(
2561
+ opt_whitelist) {};
2562
+
2563
+ /**
2564
+ * @param {Array<string>=} opt_blacklist
2565
+ * @return {!Array<string>}
2566
+ */
2567
+ angular.$sceDelegateProvider.prototype.resourceUrlBlacklist = function(
2568
+ opt_blacklist) {};
2569
+
2570
+ /******************************************************************************
2571
+ * $templateCache Service
2572
+ *****************************************************************************/
2573
+
2574
+ /**
2575
+ * @typedef {!angular.cacheFactory.Cache<string>}
2576
+ */
2577
+ angular.$templateCache;
2578
+
2579
+ /******************************************************************************
2580
+ * $timeout Service
2581
+ *****************************************************************************/
2582
+
2583
+ /**
2584
+ * @typedef {function(Function=, number=, boolean=, ...*):!angular.$q.Promise}
2585
+ */
2586
+ angular.$timeout;
2587
+
2588
+ /**
2589
+ * Augment the angular.$timeout type definition by reopening the type via an
2590
+ * artificial angular.$timeout instance.
2591
+ *
2592
+ * This allows us to define methods on function objects which is something
2593
+ * that can't be expressed via typical type annotations.
2594
+ *
2595
+ * @type {angular.$timeout}
2596
+ */
2597
+ angular.$timeout_;
2598
+
2599
+ /**
2600
+ * @type {function(angular.$q.Promise=):boolean}
2601
+ */
2602
+ angular.$timeout_.cancel = function(promise) {};
2603
+
2604
+
2605
+ /******************************************************************************
2606
+ * $transclude Service
2607
+ *****************************************************************************/
2608
+
2609
+ /**
2610
+ * @typedef {function(
2611
+ * angular.Scope=,
2612
+ * function(!angular.Scope, !Element)=,
2613
+ * Element=,
2614
+ * string=)}
2615
+ */
2616
+ angular.$transclude;
2617
+
2618
+ /**
2619
+ * Augment the angular.$transclude type definition by reopening the type via an
2620
+ * artificial angular.$transclude instance.
2621
+ *
2622
+ * This allows us to define methods on function objects which is something
2623
+ * that can't be expressed via typical type annotations.
2624
+ *
2625
+ * @type {angular.$transclude}
2626
+ */
2627
+ angular.$transclude_;
2628
+
2629
+ /**
2630
+ * @type {function(string):boolean}
2631
+ */
2632
+ angular.$transclude_.isSlotFilled = function(slotName) {};
2633
+
2634
+ /******************************************************************************
2635
+ * $window Service
2636
+ *****************************************************************************/
2637
+
2638
+ /** @typedef {!Window} */
2639
+ angular.$window;
2640
+
2641
+ /******************************************************************************
2642
+ * $document Service
2643
+ *****************************************************************************/
2644
+
2645
+ /** @typedef {!angular.JQLite} */
2646
+ angular.$document;