import { IHeritageClauseService } from "./i-heritage-clause-service"; import { ExpressionWithTypeArguments, HeritageClause } from "typescript"; import { IPrinter } from "@wessberg/typescript-ast-util"; import { INameWithTypeArguments } from "../../light-ast/dict/name-with-type-arguments/i-name-with-type-arguments"; import { ITypeNodeService } from "../type-node/i-type-node-service"; /** * A service for working with HeritageClauses */ export declare class HeritageClauseService implements IHeritageClauseService { private readonly printer; private readonly typeNodeService; constructor(printer: IPrinter, typeNodeService: ITypeNodeService); /** * Gets the first type name of a HeritageClause * @param {HeritageClause} clause * @returns {string} */ getFirstTypeName(clause: HeritageClause): string; /** * Gets the first type name with TypeArguments of a HeritageClause * @param {HeritageClause} clause * @returns {INameWithTypeArguments} */ getFirstTypeNameWithArguments(clause: HeritageClause): INameWithTypeArguments; /** * Gets the Type names as well as their TypeArguments * @param {HeritageClause} clause * @returns {INameWithTypeArguments[]} */ getTypeNamesWithArguments(clause: HeritageClause): INameWithTypeArguments[]; /** * Gets the names of the types bound to the HeritageClause * @param {HeritageClause} clause * @returns {string[]} */ getTypeNames(clause: HeritageClause): string[]; /** * Returns true if the provided clause is an ImplementsClause * @param {HeritageClause} clause * @returns {boolean} */ isImplementsClause(clause: HeritageClause): boolean; /** * Returns true if the provided clause is an ExtendsClause * @param {HeritageClause} clause * @returns {boolean} */ isExtendsClause(clause: HeritageClause): boolean; /** * Returns true if any of the clauses matches the provided name * @param {string | ExpressionWithTypeArguments} name * @param {HeritageClause} clause * @returns {boolean} */ hasTypeWithName(name: string | ExpressionWithTypeArguments, clause: HeritageClause): boolean; }