import { IJoinerBase } from "./i-joiner"; import { Block, ClassElement, Declaration, Decorator, Expression, HeritageClause, NamedExports, NamedImports, NodeArray, Statement } from "typescript"; import { IHeritageClauseService } from "../service/heritage-clause/i-heritage-clause-service"; import { INamedImportsService } from "../service/named-imports/i-named-imports-service"; import { INamedExportsService } from "../service/named-exports/i-named-exports-service"; import { IPlacement } from "../placement/i-placement"; /** * A class for joining multiple different Nodes together to form new ones */ export declare class Joiner implements IJoinerBase { private readonly heritageClauseService; private readonly namedImportsService; private readonly namedExportsService; constructor(heritageClauseService: IHeritageClauseService, namedImportsService: INamedImportsService, namedExportsService: INamedExportsService); /** * Joins two NodeArrays of Statements * @param {NodeArray|Statement} newStatements * @param {NodeArray} existingStatements * @param {IPlacement} [placement] * @returns {NodeArray} */ joinStatementNodeArrays(newStatements: NodeArray | Statement, existingStatements: NodeArray | undefined, placement?: IPlacement): NodeArray; /** * Joins two arrays of Expressions * @param {NodeArray | Expression} newExpressions * @param {NodeArray} existingExpressions * @param {IPlacement} [placement] * @returns {NodeArray} */ joinExpressionNodeArrays(newExpressions: NodeArray | Expression, existingExpressions: NodeArray | undefined, placement?: IPlacement): NodeArray; /** * Joins two arrays of Declarations * @param {NodeArray | Declaration} newDeclarations * @param {NodeArray} existingDeclarations * @param {IPlacement} [placement] * @returns {NodeArray} */ joinDeclarationNodeArrays(newDeclarations: NodeArray | Declaration, existingDeclarations: NodeArray | undefined, placement?: IPlacement): NodeArray; /** * Joins the provided Decorators * @param {Decorator | undefined} decorators * @returns {ts.NodeArray} */ joinDecorators(...decorators: (Decorator | undefined)[]): NodeArray; /** * Joins the provided ClassElements * @param {ClassElement} elements * @returns {NodeArray} */ joinClassElements(...elements: (ClassElement | undefined)[]): NodeArray; /** * Joins the provided HeritageClauses * @param {HeritageClause} clauses * @returns {NodeArray} */ joinHeritageClauses(...clauses: (HeritageClause | undefined)[]): NodeArray; /** * Joins two implements clauses. Takes all of the unique types * @param {HeritageClause} newImplementsClause * @param {HeritageClause} existingImplementsClause * @returns {HeritageClause} */ joinImplementsHeritageClause(newImplementsClause: HeritageClause, existingImplementsClause: HeritageClause | undefined): HeritageClause; /** * Joins two independent Blocks * @param {Block} blocks * @returns {Block} */ joinBlock(...blocks: (Block | undefined)[]): Block; /** * Joins two NamedImports * @param {NamedImports} newNamedImports * @param {NamedImports} existingNamedImports * @returns {NamedImports} */ joinNamedImports(newNamedImports: NamedImports, existingNamedImports: NamedImports | undefined): NamedImports; /** * Joins two NamedExports * @param {NamedExports} newNamedExports * @param {NamedExports} existingNamedExports * @returns {NamedExports} */ joinNamedExports(newNamedExports: NamedExports, existingNamedExports: NamedExports | undefined): NamedExports; /** * Joins two NodeArrays of Nodes * @param {NodeArray|Node} newNodes * @param {NodeArray} existingNodes * @param {IPlacement} [placement] * @returns {NodeArray} */ private joinNodeArrays; }