import type { CustomTransformerFactory, Node, Program, TransformerFactory as TypescriptTransformerFactory } from 'typescript'; type TransformerFactory = TypescriptTransformerFactory | CustomTransformerFactory; export interface TransformerPlugin { name: string; options: Record; } export type TransformerEntry = string | TransformerPlugin; export interface CompilerPlugin { before?: (options?: Record, program?: Program) => TransformerFactory; after?: (options?: Record, program?: Program) => TransformerFactory; afterDeclarations?: (options?: Record, program?: Program) => TransformerFactory; } /** * Extended plugin interface to support different transformer API formats * including function-based transformers and direct function exports */ export type AnyCompilerPlugin = CompilerPlugin | ((options?: Record, program?: Program) => TransformerFactory) | { before: (options?: Record, program?: Program) => TransformerFactory; } | { after: (options?: Record, program?: Program) => TransformerFactory; } | { afterDeclarations: (options?: Record, program?: Program) => TransformerFactory; }; export interface CompilerPluginHooks { beforeHooks: Array<(program?: Program) => TransformerFactory>; afterHooks: Array<(program?: Program) => TransformerFactory>; afterDeclarationsHooks: Array<(program?: Program) => TransformerFactory>; } export {}; //# sourceMappingURL=types.d.ts.map