diff --git a/components-chromium/iron-collapse/iron-collapse.d.ts b/components-chromium/iron-collapse/iron-collapse.d.ts
index ba7cf21..fb091bd 100644
--- a/components-chromium/iron-collapse/iron-collapse.d.ts
+++ b/components-chromium/iron-collapse/iron-collapse.d.ts
@@ -69,7 +69,7 @@ interface IronCollapseElement extends IronResizableBehavior, LegacyElementMixin,
   /**
    * Set opened to true to show the collapse element and to false to hide it.
    */
-  opened: boolean|null|undefined;
+  opened: boolean;
 
   /**
    * When true, the element is transitioning its opened state. When false,
diff --git a/components-chromium/iron-iconset-svg/iron-iconset-svg.d.ts b/components-chromium/iron-iconset-svg/iron-iconset-svg.d.ts
index 8dc9834..3f76923 100644
--- a/components-chromium/iron-iconset-svg/iron-iconset-svg.d.ts
+++ b/components-chromium/iron-iconset-svg/iron-iconset-svg.d.ts
@@ -104,6 +104,15 @@ interface IronIconsetSvgElement extends LegacyElementMixin, HTMLElement {
    */
   applyIcon(element: Element|null, iconName: string): Element|null;
 
+  /**
+   * Produce installable clone of the SVG element matching `id` in this
+   * iconset, or `undefined` if there is no matching element.
+   * @param iconName Name of the icon to apply.
+   * @param targetIsRTL Whether the target element is RTL.
+   * @return Returns an installable clone of the SVG element matching `id`.
+   */
+  createIcon(iconName: string, targetIsRTL: boolean): Element|null;
+
   /**
    * Remove an icon from the given element by undoing the changes effected
    * by `applyIcon`.
diff --git a/components-chromium/iron-list/iron-list.d.ts b/components-chromium/iron-list/iron-list.d.ts
index e469a76..06629b5 100644
--- a/components-chromium/iron-list/iron-list.d.ts
+++ b/components-chromium/iron-list/iron-list.d.ts
@@ -574,6 +574,7 @@ interface IronListElement extends Templatizer, IronResizableBehavior, IronScroll
   readonly _estRowsInView: any;
   readonly _physicalRows: any;
   readonly _scrollOffset: any;
+  preserveFocus: boolean;
   attached(): void;
   detached(): void;
 
diff --git a/components-chromium/iron-overlay-behavior/iron-overlay-behavior.d.ts b/components-chromium/iron-overlay-behavior/iron-overlay-behavior.d.ts
index a1a4c1f..67634c9 100644
--- a/components-chromium/iron-overlay-behavior/iron-overlay-behavior.d.ts
+++ b/components-chromium/iron-overlay-behavior/iron-overlay-behavior.d.ts
@@ -23,7 +23,7 @@ interface IronOverlayBehaviorImpl {
   /**
    * True if the overlay is currently displayed.
    */
-  opened: boolean|null|undefined;
+  opened: boolean;
 
   /**
    * True if the overlay was canceled when it was last closed.
diff --git a/components-chromium/paper-spinner/paper-spinner-behavior.d.ts b/components-chromium/paper-spinner/paper-spinner-behavior.d.ts
index e6b510c..da0718c 100644
--- a/components-chromium/paper-spinner/paper-spinner-behavior.d.ts
+++ b/components-chromium/paper-spinner/paper-spinner-behavior.d.ts
@@ -15,7 +15,7 @@ interface PaperSpinnerBehavior {
   /**
    * Displays the spinner.
    */
-  active: boolean|null|undefined;
+  active: boolean;
 
   /**
    * Alternative text content for accessibility support.
diff --git a/components-chromium/paper-tooltip/paper-tooltip.d.ts b/components-chromium/paper-tooltip/paper-tooltip.d.ts
index ed159e5..7ef18f0 100644
--- a/components-chromium/paper-tooltip/paper-tooltip.d.ts
+++ b/components-chromium/paper-tooltip/paper-tooltip.d.ts
@@ -118,7 +118,7 @@ interface PaperTooltipElement extends LegacyElementMixin, HTMLElement {
    * that your animationConfig has the exact format below.
    */
   animationConfig: object|null|undefined;
-  _showing: boolean|null|undefined;
+  _showing: boolean;
   hostAttributes: object|null;
 
   /**
@@ -126,7 +126,7 @@ interface PaperTooltipElement extends LegacyElementMixin, HTMLElement {
    * either the element given by the `for` attribute, or the immediate parent
    * of the tooltip.
    */
-  readonly target: any;
+  target: any;
   attached(): void;
   detached(): void;
 
diff --git a/components-chromium/polymer/lib/elements/dom-if.d.ts b/components-chromium/polymer/lib/elements/dom-if.d.ts
index fda3952..482bb2c 100644
--- a/components-chromium/polymer/lib/elements/dom-if.d.ts
+++ b/components-chromium/polymer/lib/elements/dom-if.d.ts
@@ -166,4 +166,4 @@ export {DomIf};
 declare class DomIf extends DomIfBase {
 }
 
-import {TemplateInfo} from '../../interfaces';
+import {TemplateInfo} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/elements/dom-repeat.d.ts b/components-chromium/polymer/lib/elements/dom-repeat.d.ts
index b584d27..aef7fb6 100644
--- a/components-chromium/polymer/lib/elements/dom-repeat.d.ts
+++ b/components-chromium/polymer/lib/elements/dom-repeat.d.ts
@@ -304,6 +304,16 @@ declare class DomRepeat extends
   modelForElement(el: HTMLElement): TemplateInstanceBase|null;
 }
 
+interface DomRepeatItem<M> {
+  model: {
+    item: M,
+    index: number,
+  }
+}
+
+/** Event interface for dom-repeat events. */
+export type DomRepeatEvent<M, E extends Event = Event> = DomRepeatItem<M>&E;
+
 declare global {
 
   interface HTMLElementTagNameMap {
@@ -311,4 +321,4 @@ declare global {
   }
 }
 
-import {TemplateInfo} from '../../interfaces';
+import {TemplateInfo} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/legacy/class.d.ts b/components-chromium/polymer/lib/legacy/class.d.ts
index 44c47ce..44ac529 100644
--- a/components-chromium/polymer/lib/legacy/class.d.ts
+++ b/components-chromium/polymer/lib/legacy/class.d.ts
@@ -88,4 +88,4 @@ export {Class};
  */
 declare function Class<T>(info: PolymerInit, mixin?: (p0: T) => T): {new(): HTMLElement};
 
-import {PolymerInit} from '../../interfaces';
+import {PolymerInit} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/legacy/polymer-fn.d.ts b/components-chromium/polymer/lib/legacy/polymer-fn.d.ts
index 9180170..10be101 100644
--- a/components-chromium/polymer/lib/legacy/polymer-fn.d.ts
+++ b/components-chromium/polymer/lib/legacy/polymer-fn.d.ts
@@ -21,4 +21,4 @@ export const Polymer: {
   Class: typeof Class;
 }
 
-import {PolymerInit} from '../../interfaces';
+import {PolymerInit} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/mixins/element-mixin.d.ts b/components-chromium/polymer/lib/mixins/element-mixin.d.ts
index f9eef31..2bcf8df 100644
--- a/components-chromium/polymer/lib/mixins/element-mixin.d.ts
+++ b/components-chromium/polymer/lib/mixins/element-mixin.d.ts
@@ -277,8 +277,8 @@ export {updateStyles};
  */
 declare function updateStyles(props?: object|null): void;
 
-import {TemplateInfo} from '../../interfaces';
+import {TemplateInfo} from '../../interfaces.js';
 
-import {NodeInfo} from '../../interfaces';
+import {NodeInfo} from '../../interfaces.js';
 
-import {StampedTemplate} from '../../interfaces';
+import {StampedTemplate} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/mixins/property-effects.d.ts b/components-chromium/polymer/lib/mixins/property-effects.d.ts
index 02ebc40..4dfa699 100644
--- a/components-chromium/polymer/lib/mixins/property-effects.d.ts
+++ b/components-chromium/polymer/lib/mixins/property-effects.d.ts
@@ -862,10 +862,10 @@ interface PropertyEffects extends TemplateStamp, PropertyAccessors, PropertiesCh
   _removeBoundDom(dom: StampedTemplate): void;
 }
 
-import {TemplateInfo} from '../../interfaces';
+import {TemplateInfo} from '../../interfaces.js';
 
-import {NodeInfo} from '../../interfaces';
+import {NodeInfo} from '../../interfaces.js';
 
-import {BindingPart} from '../../interfaces';
+import {BindingPart} from '../../interfaces.js';
 
-import {StampedTemplate} from '../../interfaces';
+import {StampedTemplate} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/mixins/strict-binding-parser.d.ts b/components-chromium/polymer/lib/mixins/strict-binding-parser.d.ts
index 1161ec2..cdfc182 100644
--- a/components-chromium/polymer/lib/mixins/strict-binding-parser.d.ts
+++ b/components-chromium/polymer/lib/mixins/strict-binding-parser.d.ts
@@ -69,4 +69,4 @@ interface StrictBindingParser extends PropertyEffects, TemplateStamp, PropertyAc
 
 export {StrictBindingParser};
 
-import {BindingPart} from '../../interfaces';
+import {BindingPart} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/mixins/template-stamp.d.ts b/components-chromium/polymer/lib/mixins/template-stamp.d.ts
index fb7b2f8..ed178ff 100644
--- a/components-chromium/polymer/lib/mixins/template-stamp.d.ts
+++ b/components-chromium/polymer/lib/mixins/template-stamp.d.ts
@@ -263,8 +263,8 @@ interface TemplateStamp {
   _removeEventListenerFromNode(node: EventTarget, eventName: string, handler: (p0: Event) => void): void;
 }
 
-import {TemplateInfo} from '../../interfaces';
+import {TemplateInfo} from '../../interfaces.js';
 
-import {NodeInfo} from '../../interfaces';
+import {NodeInfo} from '../../interfaces.js';
 
-import {StampedTemplate} from '../../interfaces';
+import {StampedTemplate} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/utils/async.d.ts b/components-chromium/polymer/lib/utils/async.d.ts
index 00c4f12..afc0eec 100644
--- a/components-chromium/polymer/lib/utils/async.d.ts
+++ b/components-chromium/polymer/lib/utils/async.d.ts
@@ -104,6 +104,6 @@ declare namespace microTask {
 
 export {microTask};
 
-import {AsyncInterface} from '../../interfaces';
+import {AsyncInterface} from '../../interfaces.js';
 
-import {IdleDeadline} from '../../interfaces';
+import {IdleDeadline} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/utils/debounce.d.ts b/components-chromium/polymer/lib/utils/debounce.d.ts
index 9ea4302..75e8066 100644
--- a/components-chromium/polymer/lib/utils/debounce.d.ts
+++ b/components-chromium/polymer/lib/utils/debounce.d.ts
@@ -93,4 +93,4 @@ export {flushDebouncers};
  */
 declare function flushDebouncers(): boolean;
 
-import {AsyncInterface} from '../../interfaces';
+import {AsyncInterface} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/utils/gestures.d.ts b/components-chromium/polymer/lib/utils/gestures.d.ts
index e9d6147..36b4623 100644
--- a/components-chromium/polymer/lib/utils/gestures.d.ts
+++ b/components-chromium/polymer/lib/utils/gestures.d.ts
@@ -78,4 +78,4 @@ export {resetMouseCanceller};
  */
 declare function resetMouseCanceller(): void;
 
-import {GestureRecognizer} from '../../interfaces';
+import {GestureRecognizer} from '../../interfaces.js';
diff --git a/components-chromium/polymer/lib/utils/telemetry.d.ts b/components-chromium/polymer/lib/utils/telemetry.d.ts
index c33eca1..564411b 100644
--- a/components-chromium/polymer/lib/utils/telemetry.d.ts
+++ b/components-chromium/polymer/lib/utils/telemetry.d.ts
@@ -1,8 +1,8 @@
 // tslint:disable:variable-name Describing an API that's defined elsewhere.
 
-import {PolymerElementConstructor} from '../../interfaces';
+import {PolymerElementConstructor} from '../../interfaces.js';
 
-export {PolymerElementConstructor} from '../../interfaces';
+export {PolymerElementConstructor} from '../../interfaces.js';
 
 /** Array of Polymer element classes that have been finalized. */
 export const registrations: PolymerElementConstructor[];
diff --git a/components-chromium/polymer/lib/utils/templatize.d.ts b/components-chromium/polymer/lib/utils/templatize.d.ts
index 4b3c313..6c3ca27 100644
--- a/components-chromium/polymer/lib/utils/templatize.d.ts
+++ b/components-chromium/polymer/lib/utils/templatize.d.ts
@@ -183,4 +183,4 @@ declare function modelForElement(template: HTMLElement|null, node?: Node|null):
 
 export {TemplateInstanceBase};
 
-import {StampedTemplate} from '../../interfaces';
+import {StampedTemplate} from '../../interfaces.js';
diff --git a/components-chromium/polymer/polymer.d.ts b/components-chromium/polymer/polymer.d.ts
index ec04e6d..7f2adfd 100644
--- a/components-chromium/polymer/polymer.d.ts
+++ b/components-chromium/polymer/polymer.d.ts
@@ -12,7 +12,7 @@ import * as gestures from './lib/utils/gestures.js';
 
 export {ArraySelector} from './lib/elements/array-selector.js';
 export {DomIf} from './lib/elements/dom-if.js';
-export {DomRepeat} from './lib/elements/dom-repeat.js';
+export {DomRepeat, DomRepeatEvent} from './lib/elements/dom-repeat.js';
 export {mixinBehaviors} from './lib/legacy/class.js';
 export {OptionalMutableDataBehavior} from './lib/legacy/mutable-data-behavior.js';
 export {Polymer} from './lib/legacy/polymer-fn.js';
@@ -27,8 +27,6 @@ export {html} from './lib/utils/html-tag.js';
 export {dedupingMixin} from './lib/utils/mixin.js';
 export {get, matches, translate} from './lib/utils/path.js';
 export {afterNextRender, beforeNextRender} from './lib/utils/render-status.js';
-export {useShadow} from './lib/utils/settings.js';
 export {TemplateInstanceBase, templatize} from './lib/utils/templatize.js';
 export {PolymerElement} from './polymer-element.js';
-export {Base} from './polymer-legacy.js';
 export {gestures};
