/** * Comptime Function Registry — plugins register their comptime functions * so they can be discovered and resolved during transform. * * Usage: * const registry = new ComptimeRegistry() * registry.register({ name: 'sizeof', resolve: (args, ctx) => ... }) * const result = registry.resolve('sizeof', ['Vec3'], ctx) */ export interface ComptimeContext { seed: number; scopeName?: string; filePath: string; } export interface ComptimeFunction { /** Function name (e.g. 'sizeof', 'deref', 'op') */ name: string; /** Resolve the function call at compile time, return replacement code */ resolve(args: string[], context: ComptimeContext): string; } export declare class ComptimeRegistry { private functions; register(fn: ComptimeFunction): void; resolve(name: string, args: string[], context: ComptimeContext): string | null; list(): string[]; has(name: string): boolean; get(name: string): ComptimeFunction | undefined; }