/**
 * DO NOT EDIT
 *
 * This file was automatically generated by
 *   https://github.com/Polymer/tools/tree/master/packages/gen-typescript-declarations
 *
 * To modify these typings, edit the source file(s):
 *   lib/elements/dom-bind.html
 */


// tslint:disable:variable-name Describing an API that's defined elsewhere.

/// <reference path="../utils/boot.d.ts" />
/// <reference path="../mixins/property-effects.d.ts" />
/// <reference path="../mixins/mutable-data.d.ts" />
/// <reference path="../mixins/gesture-event-listeners.d.ts" />

declare namespace Polymer {

  /**
   * Custom element to allow using Polymer's template features (data binding,
   * declarative event listeners, etc.) in the main document without defining
   * a new custom element.
   *
   * `<template>` tags utilizing bindings may be wrapped with the `<dom-bind>`
   * element, which will immediately stamp the wrapped template into the main
   * document and bind elements to the `dom-bind` element itself as the
   * binding scope.
   */
  class DomBind extends
    Polymer.PropertyEffects(
    Polymer.OptionalMutableData(
    Polymer.GestureEventListeners(
    HTMLElement))) {
    attributeChangedCallback(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;

    /**
     * Forces the element to render its content. This is typically only
     * necessary to call if HTMLImports with the async attribute are used.
     */
    render(): void;
  }
}

interface HTMLElementTagNameMap {
  "dom-bind": Polymer.DomBind;
}
