import { ExportedDeclarations, Node, SourceFile, Type, TypeChecker, } from 'ts-morph' export interface Ctx { sourceFile: SourceFile typeChecker: TypeChecker entryPoint: ExportedDeclarations typeToString: (ty: Type | undefined) => string getTypeValue: (ty: Type | undefined) => any createResult: (ty: string) => [string, Node | undefined] getResultExpr: (key?: string) => string printResultNode: () => void addCustomEffect: (name: string, expr: string) => void runCustomEffect: (name: string, args: Type[]) => Promise hasCustomEffect: (name: string) => boolean }