1/* 2 * Copyright 2016 Google Inc. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy of 6 * 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, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16 17 18/** 19 * @fileoverview Basic externs for the Web Animations API. This is not 20 * nessecarily exhaustive. For more information, see the spec- 21 * https://w3c.github.io/web-animations 22 * @externs 23 */ 24 25 26/** 27 * @param {!Array<!Object>} frames 28 * @param {(number|AnimationEffectTimingProperties)=} opt_options 29 * @return {!Animation} 30 */ 31Element.prototype.animate = function(frames, opt_options) {}; 32 33 34/** 35 * @interface 36 * @extends {EventTarget} 37 */ 38var Animation = function() {}; 39 40/** 41 * @return {undefined} 42 */ 43Animation.prototype.cancel = function() {}; 44 45/** 46 * @return {undefined} 47 */ 48Animation.prototype.finish = function() {}; 49 50/** 51 * @return {undefined} 52 */ 53Animation.prototype.reverse = function() {}; 54 55/** 56 * @return {undefined} 57 */ 58Animation.prototype.pause = function() {}; 59 60/** 61 * @return {undefined} 62 */ 63Animation.prototype.play = function() {}; 64 65/** @type {number} */ 66Animation.prototype.startTime; 67 68/** @type {number} */ 69Animation.prototype.currentTime; 70 71/** @type {number} */ 72Animation.prototype.playbackRate; 73 74/** @type {string} */ 75Animation.prototype.playState; 76 77/** @type {?function(!Event)} */ 78Animation.prototype.oncancel; 79 80/** @type {?function(!Event)} */ 81Animation.prototype.onfinish; 82 83 84/** 85 * @typedef {{ 86 * delay: (number|undefined), 87 * endDelay: (number|undefined), 88 * fillMode: (string|undefined), 89 * iterationStart: (number|undefined), 90 * iterations: (number|undefined), 91 * duration: (number|string|undefined), 92 * direction: (string|undefined), 93 * easing: (string|undefined) 94 * }} 95 */ 96var AnimationEffectTimingProperties; 97 98 99/** 100 * @interface 101 */ 102var AnimationEffectTiming = function() {}; 103 104/** @type {number} */ 105AnimationEffectTiming.prototype.delay; 106 107/** @type {number} */ 108AnimationEffectTiming.prototype.endDelay; 109 110/** @type {string} */ 111AnimationEffectTiming.prototype.fillMode; 112 113/** @type {number} */ 114AnimationEffectTiming.prototype.iterationStart; 115 116/** @type {number} */ 117AnimationEffectTiming.prototype.iterations; 118 119/** @type {number|string} */ 120AnimationEffectTiming.prototype.duration; 121 122/** @type {string} */ 123AnimationEffectTiming.prototype.direction; 124 125/** @type {string} */ 126AnimationEffectTiming.prototype.easing; 127