import * as fsExtra from 'fs-extra'; import { Node, Program, SourceFile } from 'typescript'; import { resolveConfigPaths, resolvePath, resolveRelativePath } from '../utils/resolve'; import { ComponentMeta, HeritageMeta } from './ComponentMeta'; export declare type PluginFs = typeof fsExtra & { resolvePath: typeof resolvePath; resolveRelativePath: typeof resolveRelativePath; resolveConfigPaths: typeof resolveConfigPaths; }; export interface Plugin { name: string; init?(program: Program): Promise; discover?(sourceFile: SourceFile): Promise; build?(node: ComponentRootNodeType): Promise; postbuild?(components: ComponentMeta[], sourceFiles: SourceFile[]): Promise; link?(component: ComponentMeta, heritage: HeritageMeta): Promise; postlink?(components: ComponentMeta[], sourceFiles: SourceFile[]): Promise; transform?(components: ComponentMeta[], fs: PluginFs): Promise; destroy?(): Promise; } export declare type PluginBuilder = (config?: ConfigType) => Plugin; //# sourceMappingURL=Plugin.d.ts.map