import { ASTv1 } from '@glimmer/syntax'; import { Range as LSRange, Position } from 'vscode-languageserver/node'; interface IBabelScope { bindings: Record; parent?: IBabelScope; } export declare function documentPartForPosition(templates: TemplateData[], position: Position): TemplateData | undefined; export declare function getPlaceholderPathFromAst(ast: any, key: string): null | { scope: IBabelScope; }; export declare function getPlaceholderPath(content: string, key: string): { scope: IBabelScope; } | null; export declare function getScope(scope: IBabelScope): string[]; export declare class TemplateData { loc: LSRange; content: string; constructor(content: string, loc?: LSRange); get absoluteContent(): string; get key(): string; get prefix(): string; get locals(): string[]; get ast(): ASTv1.Template; } declare class FileRange { start: number; columns: number; line: number; characters: string[]; constructor(start?: number); addColumn(character?: string): void; get content(): string; clone(): FileRange; } export declare function getFileRanges(file?: string): FileRange[]; export declare class RangeWalker { constructor(lines: FileRange[]); lines: FileRange[]; get content(): string; extractDocumentPart(includeBounds?: boolean, openTag?: string, closeTag?: string): TemplateData[]; subtract(parts: TemplateData[], addPlaceholders?: boolean): RangeWalker; templates(includeBounds?: boolean): TemplateData[]; htmlComments(includeBounds?: boolean): TemplateData[]; hbsComments(includeBounds?: boolean): TemplateData[]; hbsInlineComments(includeBounds?: boolean): TemplateData[]; styles(includeBounds?: boolean): TemplateData[]; } export {};