import { LitElement } from 'lit-element'; import { nothing, RenderOptions, TemplateResult } from 'lit-html'; export declare class ViewContext { count: number; valueMap: WeakMap; keyMap: Map; } export declare abstract class View { attrs: { [key: string]: string; }; styles: { [key: string]: string; }; static contextStore: Map; abstract get body(): TemplateResult | string | typeof nothing; viewRoot(element: Element): Element; slot(name: string): this; color(color: string): this; style(nameOrStyles: string | { [key: string]: string; }, value?: string): this; attr(attrs: { [key: string]: string; }): this; context(token: string, value: any): this; } export declare function render(result: unknown, container: Element | DocumentFragment, options?: Partial): void; export { html } from 'lit-html'; export { css } from 'lit-element'; export declare type ViewElement = LitElement & { view: View; }; export declare function createView(template: ((opts: { attrs: { [key: string]: string; }; styles: { [key: string]: string; }; }) => TemplateResult) | TemplateResult): View; export declare type Clazz = new (...args: any[]) => T;