import type { Vec2 } from '../core/types'; export interface EngineError { code: string; message: string; suggestion: string; docsSection?: string; severity: 'error' | 'warning' | 'info'; context?: Record; } /** Get a rich engine error by code */ export declare function getEngineError(code: string, context?: Record): EngineError; /** Format an engine error for console output */ export declare function formatEngineError(err: EngineError): string; /** Throw a rich engine error */ export declare function throwEngineError(code: string, context?: Record): never; /** Log a rich engine warning */ export declare function warnEngine(code: string, context?: Record): void; export interface APIHint { method: string; module: string; signature: string; description: string; example: string; params: Array<{ name: string; type: string; description: string; optional?: boolean; }>; returns: string; since: string; tags: string[]; } /** Core API hints for auto-complete and intellisense */ export declare const API_HINTS: APIHint[]; /** Search API hints */ export declare function searchAPIHints(query: string): APIHint[]; export interface PerfSnapshot { timestamp: number; fps: number; frameTimeMs: number; entityCount: number; systemCount: number; drawCalls: number; memoryMB: number; gcPauses: number; } export interface PerfDashboard { snapshots: PerfSnapshot[]; maxSnapshots: number; warnings: string[]; } export declare function createPerfDashboard(maxSnapshots?: number): PerfDashboard; export declare function recordPerfSnapshot(dashboard: PerfDashboard, snapshot: PerfSnapshot): void; /** Get average FPS from last N snapshots */ export declare function getAverageFPS(dashboard: PerfDashboard, lastN?: number): number; /** Get performance summary */ export declare function getPerfSummary(dashboard: PerfDashboard): { avgFPS: number; minFPS: number; maxFPS: number; avgFrameTime: number; peakFrameTime: number; totalWarnings: number; }; export interface HealthCheckResult { category: string; status: 'ok' | 'warning' | 'error'; message: string; details?: string; } /** Run a health check on common engine misconfigurations */ export declare function runHealthCheck(config: { entityCount: number; systemCount: number; canvasWidth: number; canvasHeight: number; targetFps: number; physicsTimestep: number; maxTextureDimension: number; }): HealthCheckResult[]; export interface DebugOverlayConfig { /** Show FPS counter */ showFPS: boolean; /** Show entity count */ showEntityCount: boolean; /** Show draw calls */ showDrawCalls: boolean; /** Show physics debug (colliders) */ showPhysicsDebug: boolean; /** Show grid */ showGrid: boolean; /** Grid size */ gridSize: number; /** Show entity bounding boxes */ showBoundingBoxes: boolean; /** Show entity origins (transform position) */ showOrigins: boolean; /** Overlay position */ position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; /** Overlay opacity (0-1) */ opacity: number; } export declare const DEFAULT_DEBUG_OVERLAY: DebugOverlayConfig; /** Render a debug text overlay onto a canvas context */ export declare function renderDebugOverlay(ctx: CanvasRenderingContext2D, config: DebugOverlayConfig, stats: { fps: number; entityCount: number; drawCalls: number; frameTimeMs: number; }, canvasSize: Vec2): void; export interface QuickStartTemplate { id: string; name: string; description: string; category: 'game' | 'demo' | 'prototype'; difficulty: 'beginner' | 'intermediate' | 'advanced'; /** Code template as string */ code: string; /** Tags */ tags: string[]; } export declare const QUICK_START_TEMPLATES: QuickStartTemplate[];