import { Block, ClassElement, Declaration, Decorator, Expression, HeritageClause, NamedExports, NamedImports, NodeArray, Statement } from "typescript"; import { IPlacement } from "../placement/i-placement"; export interface IJoinerBase { joinDecorators(...decorators: (Decorator | undefined)[]): NodeArray; joinHeritageClauses(...clauses: (HeritageClause | undefined)[]): NodeArray; joinImplementsHeritageClause(newImplementsClause: HeritageClause, existingImplementsClause: HeritageClause | undefined): HeritageClause; joinClassElements(...elements: (ClassElement | undefined)[]): NodeArray; joinBlock(...blocks: (Block | undefined)[]): Block; joinStatementNodeArrays(newStatements: NodeArray | Statement, existingStatements: NodeArray | undefined, placement?: IPlacement): NodeArray; joinExpressionNodeArrays(newExpressions: NodeArray | Expression, existingExpressions: NodeArray | undefined, placement?: IPlacement): NodeArray; joinDeclarationNodeArrays(newDeclarations: NodeArray | Declaration, existingDeclarations: NodeArray | undefined, placement?: IPlacement): NodeArray; joinNamedImports(newNamedImports: NamedImports, existingNamedImports: NamedImports | undefined): NamedImports; joinNamedExports(newNamedExports: NamedExports, existingNamedExports: NamedExports | undefined): NamedExports; }