import { EventBus } from '../core/EventBus'; export type DocCategory = 'core' | 'ecs' | 'rendering' | 'physics' | 'audio' | 'input' | 'ui' | 'scene' | 'multiplayer' | 'editor' | 'legendary' | 'other'; export type DocMemberKind = 'class' | 'interface' | 'type' | 'function' | 'constant' | 'enum'; export interface DocParam { name: string; type: string; description: string; optional?: boolean; defaultValue?: string; } export interface DocMember { name: string; kind: DocMemberKind; description: string; category?: DocCategory; /** Signature or type representation. */ signature?: string; /** Parameters (for functions/methods). */ params?: DocParam[]; /** Return type description. */ returns?: string; /** Code example. */ example?: string; /** Since which version. */ since?: string; /** Deprecated message (if deprecated). */ deprecated?: string; /** Related API names. */ seeAlso?: string[]; /** Tags for search. */ tags?: string[]; } export interface DocModule { name: string; category: DocCategory; description: string; members: DocMember[]; } export interface DocSearchResult { member: DocMember; module: string; score: number; } export declare class DocRegistry { readonly events: EventBus; private modules; /** Register a module's documentation. */ registerModule(mod: DocModule): void; /** Unregister a module. */ unregisterModule(name: string): void; /** Get a module by name. */ getModule(name: string): DocModule | undefined; /** Get all registered modules. */ getAllModules(): DocModule[]; /** Get all modules in a category. */ getModulesByCategory(category: DocCategory): DocModule[]; /** Search across all docs. */ search(query: string, maxResults?: number): DocSearchResult[]; private scoreMember; /** Get a specific member by name. */ findMember(memberName: string): { member: DocMember; module: string; } | null; /** Generate Markdown docs for a single module. */ generateModuleMarkdown(moduleName: string): string; /** Generate full Markdown documentation for all modules. */ generateFullMarkdown(): string; /** Generate a JSON index for interactive docs browser. */ generateSearchIndex(): Array<{ name: string; module: string; kind: DocMemberKind; description: string; tags: string[]; }>; /** Total number of documented members. */ get totalMembers(): number; /** Reset. */ clear(): void; } export declare const DOCS_ECS: DocModule; export declare const DOCS_RENDERING: DocModule;