import 'reflect-metadata';
import { HtmlTemplateService } from '../../core/services/template';
import type { DevServerConfig } from '../types/server.types';
/**
 * DevServer provides a local development server for client-side React development.
 *
 * Unlike production Lambda which uses serverless rendering, the dev server serves a static HTML shell
 * and lets the browser handle all React rendering. This approach:
 * - Avoids React singleton issues between Lambda Layer and local node_modules
 * - Provides faster development iteration without serverless rendering complexity
 * - Matches typical React development workflow
 *
 * The server serves:
 * - Static HTML shell with root div and script tag
 * - React bundle (main.js) for client-side rendering
 * - Static assets from public directory
 */
export declare class DevServer {
    private config;
    private htmlTemplateService;
    private loggerInstance;
    private server;
    private buildWatcher?;
    private reloadNotifier?;
    private devRuntimeWebResponse;
    constructor(config: DevServerConfig, htmlTemplateService: HtmlTemplateService);
    /**
     * Generate client-side reload script for HMR
     * Only runs on localhost and implements exponential backoff reconnection
     */
    private generateClientScript;
    /**
     * Generate static HTML shell for client-side rendering
     */
    private generateHtmlShell;
    /**
     * Handle rebuild events from BuildWatcher
     */
    private handleRebuild;
    /**
     * Start the development server
     */
    start(): Promise<void>;
    /**
     * Stop the development server
     */
    stop(): Promise<void>;
    /**
     * Handle incoming HTTP request
     */
    private handleRequest;
    /**
     * Check if the request is for a static file
     */
    private isStaticFile;
    /**
     * Serve static file from public directory
     */
    private serveStaticFile;
    /**
     * Serve main.js from build output
     * Always reads from disk to ensure latest bundle is served
     */
    private serveMainJs;
    /**
     * Serve HTML shell for client-side rendering
     */
    private serveHtmlShell;
    /**
     * Get content type for file extension
     */
    private getContentType;
    /**
     * Handle error with stack trace in development mode
     */
    private handleError;
    /**
     * Escape HTML to prevent XSS
     */
    private escapeHtml;
}
