import { AnyWidget } from './construct'; import { TypedMap } from '../utils/objects'; export declare const parsedTemplates: WeakMap>; export declare const SINGLE_CURLIES: RegExp; export declare const CURLIES: RegExp; export declare const selfClosingTags: RegExp; export declare const openTags = "$1>"; export declare enum TemplateTokenType { CLASS = 0, PROPERTY = 1, ATTRIBUTE = 2, TEMPLATE = 3, TEXT = 4, TAG = 5, } export declare class TemplateTokenInfo { position: number; type: TemplateTokenType; private _curly; private _path; private _transformers; selector: string; attribute: string; constructor(position: number, type: TemplateTokenType); setCurly(value: string): void; curly(): string; path(): string; transformers(): string[]; arrayTransformer(): string; } export declare const breakApartTextNodes: (root: DocumentFragment) => DocumentFragment; export declare const getFragment: (html: string) => DocumentFragment; export declare class ParsedTemplate { infos: TemplateTokenInfo[]; doc: Node; nodes: Element[]; constructor(doc: Node, nodes: Element[], infos: TemplateTokenInfo[]); clone(): ParsedTemplate; } export declare const getTemplate: (widget: AnyWidget, name?: string) => ParsedTemplate; export declare const parseTemplate: (templateStr: string) => ParsedTemplate; export declare const parseHooks: (nodes: Element[], hookMap?: {}) => TemplateTokenInfo[]; export declare const Template: (name?: string) => (proto: AnyWidget, method: string) => void;