import type { ISmartServeOptions, ISmartServeInstance, IConnectionInfo, IServerStats, TRuntime, THttpMethod } from '../core/smartserve.interfaces.js'; interface IResolvedWebSocketHeartbeatOptions { intervalMs: number; timeoutMs: number; payload?: Uint8Array; } /** * Adapter characteristics - what each runtime supports */ export interface IAdapterCharacteristics { /** Zero-copy streaming support */ zeroCopyStreaming: boolean; /** HTTP/2 support */ http2Support: boolean; /** Maximum concurrent connections */ maxConnections: number | 'unlimited'; /** Native WebSocket upgrade support */ nativeWebSocket: boolean; } /** * Handler function that receives web standard Request and returns Response */ export type TRequestHandler = (request: Request, info: IConnectionInfo) => Response | Promise; /** * Abstract base adapter for all runtime implementations */ export declare abstract class BaseAdapter { protected options: ISmartServeOptions; protected handler: TRequestHandler | null; protected stats: IServerStats; protected startTime: number; constructor(options: ISmartServeOptions); /** * Runtime name */ abstract get name(): TRuntime; /** * Adapter characteristics */ abstract get characteristics(): IAdapterCharacteristics; /** * Check if this adapter is supported in current runtime */ abstract isSupported(): boolean; /** * Start the server */ abstract start(handler: TRequestHandler): Promise; /** * Stop the server */ abstract stop(): Promise; /** * Get current server statistics */ getStats(): IServerStats; /** * Create ISmartServeInstance from adapter */ protected createInstance(): ISmartServeInstance; /** * Parse URL from request for cross-platform compatibility */ protected parseUrl(request: Request): URL; /** * Parse query parameters from URL */ protected parseQuery(url: URL): Record; /** * Get HTTP method from request */ protected parseMethod(request: Request): THttpMethod; protected resolveWebSocketHeartbeatOptions(defaultEnabled: boolean): IResolvedWebSocketHeartbeatOptions | null; private assertPositiveFiniteNumber; private normalizeWebSocketHeartbeatPayload; } export {};