/** * @license * Copyright (c) 2015 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at * http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at * http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ import * as dom5 from 'dom5'; import * as estree from 'estree'; import { Annotation as JsDocAnnotation } from '../javascript/jsdoc'; import { Document, ElementMixin, Method, Privacy, ScannedElementMixin, ScannedMethod, ScannedReference, SourceRange } from '../model/model'; import { ScannedBehaviorAssignment } from './behavior'; import { LocalId, Observer, PolymerExtension, PolymerProperty, ScannedPolymerExtension, ScannedPolymerProperty } from './polymer-element'; export interface Options { name: string; jsdoc: JsDocAnnotation; description: string; summary: string; privacy: Privacy; sourceRange: SourceRange; mixins: ScannedReference[]; astNode: estree.Node; } export declare class ScannedPolymerElementMixin extends ScannedElementMixin implements ScannedPolymerExtension { properties: ScannedPolymerProperty[]; methods: ScannedMethod[]; observers: Observer[]; listeners: { event: string; handler: string; }[]; behaviorAssignments: ScannedBehaviorAssignment[]; domModule: dom5.Node | undefined; scriptElement: dom5.Node | undefined; pseudo: boolean; abstract: boolean; constructor(options?: Options); addProperty(prop: ScannedPolymerProperty): void; addMethod(method: ScannedMethod): void; resolve(document: Document): PolymerElementMixin; } export declare class PolymerElementMixin extends ElementMixin implements PolymerExtension { properties: PolymerProperty[]; methods: Method[]; observers: Observer[]; listeners: { event: string; handler: string; }[]; behaviorAssignments: ScannedBehaviorAssignment[]; domModule?: dom5.Node; scriptElement?: dom5.Node; localIds: LocalId[]; abstract?: boolean; constructor(); emitPropertyMetadata(property: PolymerProperty): { polymer: any; }; }