import { ImportDeclarationStructure, StatementStructures } from 'ts-morph'; import { CodegenPlugin, Context, PluginResult } from '../../pipeline'; /** * The object should be structured that from process root you can do * import { [name] } from '[path]'; */ interface ImportAddress { /** * name of the exported variable */ name: string; /** * path to file from pwd */ path: string; } export interface IocContext extends Context { toProvide: ImportAddress[]; } export interface IocConfig { outputFile?: string; } export declare function createAddressImport(location: string, address: ImportAddress, importAs: string): ImportDeclarationStructure; export declare function createProviders(context: IocContext, location: string): StatementStructures[]; export declare class IocPlugin implements CodegenPlugin { private config; constructor(config: IocConfig); run(context: IocContext): Promise; static create(config: IocConfig): IocPlugin; } export {};