import type { Vec2 } from '../core/types';
export interface EngineError {
    code: string;
    message: string;
    suggestion: string;
    docsSection?: string;
    severity: 'error' | 'warning' | 'info';
    context?: Record<string, unknown>;
}
/** Get a rich engine error by code */
export declare function getEngineError(code: string, context?: Record<string, unknown>): 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<string, unknown>): never;
/** Log a rich engine warning */
export declare function warnEngine(code: string, context?: Record<string, unknown>): 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[];
