import { TypeDeclarationService } from "../type-declaration/type-declaration-service"; import { InterfaceDeclaration, SourceFile, SyntaxKind } from "typescript"; import { IInterfaceDeclarationService } from "./i-interface-declaration-service"; import { INodeToDictMapper } from "../../node-to-dict-mapper/i-node-to-dict-mapper-getter"; import { IRemover } from "../../remover/i-remover-base"; import { IPrinter, ITypescriptASTUtil } from "@wessberg/typescript-ast-util"; import { IDecoratorService } from "../decorator/i-decorator-service"; import { IInterfaceDict } from "../../light-ast/dict/interface/i-interface-dict"; import { ITypescriptLanguageService } from "@wessberg/typescript-language-service"; import { ITypeElementService } from "../type-element/i-type-element-service"; import { IJoiner } from "../../joiner/i-joiner-getter"; import { IUpdater } from "../../updater/i-updater-getter"; /** * A service for working with InterfaceDeclarations */ export declare class InterfaceDeclarationService extends TypeDeclarationService implements IInterfaceDeclarationService { private readonly nodeToDictMapper; private readonly printer; /** * The allowed SyntaxKinds when parsing a SourceFile for relevant Expressions * @type {Iterable} */ protected readonly ALLOWED_KINDS: Iterable; constructor(nodeToDictMapper: INodeToDictMapper, printer: IPrinter, joiner: IJoiner, updater: IUpdater, astUtil: ITypescriptASTUtil, remover: IRemover, languageService: ITypescriptLanguageService, typeElementService: ITypeElementService, decoratorService: IDecoratorService); /** * Returns true if the given SourceFile has an InterfaceDeclaration with the given name * @param {string} name * @param {SourceFile} sourceFile * @param {boolean} [deep=false] * @returns {boolean} */ hasInterfaceWithName(name: string, sourceFile: SourceFile, deep?: boolean): boolean; /** * Gets the InterfaceDeclaration with the provided name, if any exists in the SourceFile * @param {string} name * @param {SourceFile} sourceFile * @param {boolean} [deep=false] * @returns {InterfaceDeclaration} */ getInterfaceWithName(name: string, sourceFile: SourceFile, deep?: boolean): InterfaceDeclaration | undefined; /** * Maps the provided InterfaceDeclaration to an IInterfaceCtor * @param {InterfaceDeclaration} type * @returns {IInterfaceCtor} */ toLightAST(type: InterfaceDeclaration): IInterfaceDict; /** * Gets the names of TypeParameters for an InterfaceDeclaration * @param {InterfaceDeclaration} type * @returns {string[]} */ getTypeParameterNames(type: InterfaceDeclaration): string[] | undefined; /** * Returns the name of an InterfaceDeclaration * @param {InterfaceDeclaration} type * @returns {string} */ getName(type: InterfaceDeclaration): string; }