import { TemplateResult } from 'lit'; import { RefOrCallback } from 'lit/directives/ref.js'; import { BuilderFactory } from './factory.js'; import { Clazz, View } from './view.js'; export declare function asView(options: TemplateViewOptionsWithFactory): [U & { View: Clazz; }, Clazz]; export declare function asView(options: TemplateViewOptions): [BuilderFactory & { View: Clazz; }, Clazz]; export interface TemplateViewOptions { Props: Clazz; template: (props: T, options: { bindings: { [k: string]: any; }; styles: { [key: string]: string; }; elementRef: RefOrCallback; }) => TemplateResult; cssProps?: Map; } export interface TemplateViewOptionsWithFactory extends TemplateViewOptions { mapBuilder: (_: BuilderFactory) => U; }