blob: 5489f71f852ad343857fcd5999ccf1eff4122323 [file] [log] [blame] [edit]
export interface Template {
tag?: string;
parts: TemplatePart[];
}
export interface TemplatePart {
text: string;
start: number;
end: number;
}
export interface Strategy<N = any> {
getRootNode(source: string, fileName?: string): N;
walkNodes(parent: N, visit: (child: N) => void): void;
isTaggedTemplate(node: N): boolean;
getTagText(node: N): string;
getTaggedTemplateTemplate(node: N): N;
isTemplate(node: N): boolean;
getTemplateParts(node: N): TemplatePart[];
}