/**
* Streaming HTML parser for template literals.
* State machine: Text=0, TagOpen=1, TagName=2, InTag=3, AttrName=4, AttrEq=5, AttrVal=6, CloseTag=7, Comment=8
*/
/** Pre-compiled attribute: static strings interleaved with slot indexes */
export type Attr = [name: string, statics: string[], indexes: number[]];
export interface ParseCallbacks {
onText: (text: string) => void;
onOpenTag: (tag: string, attrs: Attr[], selfClosing: boolean) => void;
onClose: () => void;
onSlot: (index: number) => void;
}
export declare class HTMLParser {
private s;
private tag;
private attr;
private statics;
private indexes;
private attrs;
private text;
private q;
parseTemplate(strings: TemplateStringsArray, cb: ParseCallbacks): void;
private parse;
private slot;
private emit;
private emitAttr;
private isA;
private isT;
private isW;
}
//# sourceMappingURL=parser.d.ts.map