import fs from 'fs-extra'; import type { Node, Program, SourceFile } from 'typescript'; import { resolveConfigPaths, resolvePath, resolveRelativePath } from '../utils/resolve.js'; import { ComponentMeta, HeritageMeta } from './ComponentMeta.js'; export declare type PluginFs = typeof fs & { 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