/**
 * @fileoverview OrdoJS CLI - Development Server with File Watching
 *
 * Main development server implementation with lifecycle management and file watching.
 */
/**
 * Development server options
 */
export interface DevServerOptions {
    /** Directory to serve */
    dir: string;
    /** Host to listen on */
    host: string;
    /** Port to listen on */
    port: string | number;
    /** Enable hot module replacement */
    hmr: boolean;
    /** HMR port (defaults to main port + 1) */
    hmrPort?: number;
}
/**
 * Server status enum
 */
export declare enum ServerStatus {
    STOPPED = "stopped",
    STARTING = "starting",
    RUNNING = "running",
    STOPPING = "stopping",
    ERROR = "error",
    RESTARTING = "restarting"
}
/**
 * Server state interface for preserving state during restarts
 */
export interface ServerState {
    /** Connected clients */
    connectedClients?: string[];
    /** Active file watchers */
    activeWatchers?: string[];
    /** Compilation cache */
    compilationCache?: Record<string, unknown>;
    /** Custom state data */
    [key: string]: unknown;
}
/**
 * OrdoJSDevServer class for managing the development server lifecycle
 */
export declare class OrdoJSDevServer {
    private options;
    private server;
    private portManager;
    private processManager;
    private fileWatcher;
    private hmr;
    private status;
    private actualPort;
    private hmrPort;
    private serverState;
    /**
     * Create a new OrdoJSDevServer instance
     *
     * @param options - Server options
     */
    constructor(options: DevServerOptions);
    /**
     * Get the current server status
     */
    getStatus(): ServerStatus;
    /**
     * Get the actual port the server is running on
     */
    getPort(): number;
    /**
     * Get the HMR port
     */
    getHMRPort(): number;
    /**
     * Get the current server state
     *
     * @returns The current server state
     */
    getServerState(): ServerState;
    /**
     * Start the development server
     */
    start(): Promise<void>;
    /**
     * Stop the development server
     */
    stop(): Promise<void>;
    /**
     * Restart the development server
     */
    restart(): Promise<void>;
    /**
     * Set up HMR system and file watching
     */
    private setupHMR;
    /**
     * Handle file change events
     */
    private handleFileChange;
    /**
     * Handle file watcher errors
     */
    private handleFileWatcherError;
    /**
     * Start the HTTP server
     */
    private startServer;
    /**
     * Stop the HTTP server
     */
    private stopServer;
    /**
     * HTTP request handler
     */
    private requestHandler;
}
//# sourceMappingURL=server-with-watcher.d.ts.map