/**
 * Express Server Adapter
 * Server adapter implementation using Express framework
 */
import type { NeuroLink } from "../../neurolink.js";
import { BaseServerAdapter } from "../abstract/baseServerAdapter.js";
import type { MiddlewareDefinition, RouteDefinition, ServerAdapterConfig } from "../../types/index.js";
/**
 * Express-specific server adapter
 */
export declare class ExpressServerAdapter extends BaseServerAdapter {
    private app;
    private server?;
    private frameworkInitialized;
    private sockets;
    constructor(neurolink: NeuroLink, config?: ServerAdapterConfig);
    /**
     * Initialize Express framework asynchronously
     */
    protected initializeFramework(): void;
    /**
     * Initialize Express framework with async imports
     */
    private initializeFrameworkAsync;
    /**
     * Override initialize to ensure async framework setup
     */
    initialize(): Promise<void>;
    /**
     * Register route with Express
     */
    protected registerFrameworkRoute(route: RouteDefinition): void;
    /**
     * Setup error handling middleware
     */
    private errorHandlerRegistered;
    private setupErrorHandler;
    /**
     * Handle streaming response using SSE
     */
    private handleStreamingResponse;
    /**
     * Register middleware with Express
     */
    protected registerFrameworkMiddleware(middleware: MiddlewareDefinition): void;
    /**
     * Start the Express server
     */
    start(): Promise<void>;
    /**
     * Stop the Express server with graceful shutdown
     */
    stop(): Promise<void>;
    /**
     * Stop accepting new connections
     */
    protected stopAcceptingConnections(): Promise<void>;
    /**
     * Close the underlying server
     */
    protected closeServer(): Promise<void>;
    /**
     * Force close all active connections
     */
    protected forceCloseConnections(): Promise<void>;
    /**
     * Get the Express app instance
     */
    getFrameworkInstance(): unknown;
}
