chromium/third_party/closure_compiler/externs/pending.js

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/**
 * @fileoverview Externs for stuff not added to the Closure compiler yet, but
 * should get added.
 * @externs
 */

/**
 * TODO(katie): Remove this once length is added to the Closure
 * chrome_extensions.js.
 * An event from the TTS engine to communicate the status of an utterance.
 * @constructor
 */
function TtsEvent() {}

/** @type {number} */
TtsEvent.prototype.length;


/**
 * @see https://drafts.css-houdini.org/css-typed-om/#stylepropertymap
 * @typedef {{set: function(string, *):void,
 *            append: function(string, *):void,
 *            delete: function(string):void,
 *            clear: function():void }}
 * TODO(rbpotter): Remove this once it is added to Closure Compiler itself.
 */
class StylePropertyMap {
  /**
   * @param {string} property
   * @param {*} values
   */
  set(property, values) {}

  /**
   * @param {string} property
   * @param {*} values
   */
  append(property, values) {}

  /** @param {string} property */
  delete(property) {}

  clear() {}
}

/** @type {!StylePropertyMap} */
HTMLElement.prototype.attributeStyleMap;

/**
 * @see https://drafts.css-houdini.org/css-typed-om/#stylepropertymapreadonly
 */
class StylePropertyMapReadOnly {
  /** @param {string} property */
  get(property) {}
}

/** @return {!StylePropertyMapReadOnly} */
HTMLElement.prototype.computedStyleMap = function() {};

/** @return {!AnimationEffectTimingProperties} */
AnimationEffect.prototype.getTiming = function() {};

/** @return {!Array<!Object>} */
AnimationEffect.prototype.getKeyframes = function() {};

/**
 * https://developer.mozilla.org/en-US/docs/Web/API/structuredClone
 * @param {T} obj
 * @return {T}
 * @template T
 */
function structuredClone(obj) {}