/** * KernRuntime — instance-based state for KERN's parser, codegen, and template engine. * * Centralizes 6 module-level global registries into a single owning instance. * All public APIs (parse, parseDocument, generateCoreNode, isTemplateNode, * expandTemplateNode, isKnownNodeType) accept an optional `runtime` parameter * for true instance isolation (LSP, serverless, worker threads, parallel tests). * * Usage: * const runtime = new KernRuntime(); * runtime.registerEvolvedType('custom'); * runtime.registerParserHints('custom', { positionalArgs: ['name'] }); * runtime.registerEvolvedGenerator('custom', node => [...]); * * A `defaultRuntime` singleton is provided for backward compatibility. * All existing module-level functions (registerEvolvedType, clearParserHints, etc.) * delegate to `defaultRuntime` so existing code continues to work unchanged. */ import type { IRNode, ParseDiagnostic, TemplateDefinition } from './types.js'; export interface ParserHintsConfig { positionalArgs?: string[]; bareWord?: string; multilineBlock?: string; } export declare class KernRuntime { readonly parserHints: Map; readonly multilineBlockTypes: Set; lastParseDiagnostics: ParseDiagnostic[]; readonly dynamicNodeTypes: Set; readonly evolvedGenerators: Map string[]>; readonly evolvedTargetGenerators: Map string[]>>; readonly templateRegistry: Map; registerParserHints(keyword: string, hints: ParserHintsConfig): void; unregisterParserHints(keyword: string): void; clearParserHints(): void; registerEvolvedType(keyword: string): void; unregisterEvolvedType(keyword: string): void; getEvolvedTypes(): ReadonlySet; clearEvolvedTypes(): void; registerEvolvedGenerator(keyword: string, fn: (node: IRNode) => string[]): void; registerEvolvedTargetGenerator(keyword: string, target: string, fn: (node: IRNode) => string[]): void; unregisterEvolvedGenerator(keyword: string): void; hasEvolvedGenerator(keyword: string): boolean; clearEvolvedGenerators(): void; registerTemplate(name: string, def: TemplateDefinition): void; isTemplateNode(type: string): boolean; getTemplate(name: string): TemplateDefinition | undefined; templateCount(): number; clearTemplates(): void; /** Reset all runtime state. Useful for test isolation. */ reset(): void; } /** * Default runtime singleton. All existing module-level registration functions * delegate to this instance for backward compatibility. */ export declare const defaultRuntime: KernRuntime;