import { NodeService } from "../node/node-service"; import { BooleanLiteral, LiteralExpression, NoSubstitutionTemplateLiteral, StringLiteral, SyntaxKind, TemplateExpression } from "typescript"; import { ITemplateExpressionService } from "./i-template-expression-service"; import { IJoiner } from "../../joiner/i-joiner-getter"; import { IPrinter, ITypescriptASTUtil } from "@wessberg/typescript-ast-util"; import { ITypescriptLanguageService } from "@wessberg/typescript-language-service"; import { IRemover } from "../../remover/i-remover-base"; import { IDecoratorService } from "../decorator/i-decorator-service"; import { IUpdater } from "../../updater/i-updater-getter"; /** * A service for working with TemplateExpressions */ export declare class TemplateExpressionService extends NodeService implements ITemplateExpressionService { private readonly printer; protected decoratorService: IDecoratorService; protected languageService: ITypescriptLanguageService; protected joiner: IJoiner; protected updater: IUpdater; protected remover: IRemover; protected astUtil: ITypescriptASTUtil; /** * The allowed SyntaxKinds when parsing a SourceFile for relevant Expressions * @type {Iterable} */ protected readonly ALLOWED_KINDS: Iterable; constructor(printer: IPrinter, decoratorService: IDecoratorService, languageService: ITypescriptLanguageService, joiner: IJoiner, updater: IUpdater, remover: IRemover, astUtil: ITypescriptASTUtil); /** * Stringifies the provided TemplateExpression * @param {TemplateExpression|NoSubstitutionTemplateLiteral|LiteralExpression|BooleanLiteral} node * @returns {string} */ stringify(node: TemplateExpression | NoSubstitutionTemplateLiteral | StringLiteral | LiteralExpression | BooleanLiteral): string; /** * Stringifies the provided TemplateSpan * @param {TemplateSpan} node * @returns {string} */ private stringifyTemplateSpan; /** * Stringifies the provided TemplateHead * @param {TemplateHead} node * @returns {string} */ private stringifyTemplateHead; /** * Stringifies the provided TemplateMiddle * @param {TemplateMiddle} node * @returns {string} */ private stringifyTemplateMiddle; /** * Stringifies the provided TemplateTail * @param {TemplateTail} node * @returns {string} */ private stringifyTemplateTail; }