import { AuthenticatedServerRequest } from '../../server/server.types'; import { TransportKey, TypedElicitResult } from '../transport.types'; import { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js'; import { ElicitResult, RequestId } from '@modelcontextprotocol/sdk/types.js'; import { InMemoryEventStore } from '../transport.event-store'; import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js'; import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js'; import { SSEServerTransport } from '../legacy/legacy.sse.tranporter'; import { ZodObject } from 'zod'; import { FrontMcpLogger, ServerResponse } from '@frontmcp/sdk'; import { Scope } from '../../scope'; export declare abstract class LocalTransportAdapter { #private; protected readonly scope: Scope; protected readonly key: TransportKey; protected readonly onDispose: () => void; protected logger: FrontMcpLogger; protected transport: T; protected eventStore: InMemoryEventStore; protected elicitHandler: { resolve: (result: ElicitResult) => void; reject: (err: unknown) => void; } | undefined; ready: Promise; server: McpServer; constructor(scope: Scope, key: TransportKey, onDispose: () => void, res: ServerResponse); abstract createTransport(sessionId: string, response: ServerResponse): T; abstract initialize(req: AuthenticatedServerRequest, res: ServerResponse): Promise; abstract sendElicitRequest>(relatedRequestId: RequestId, message: string, requestedSchema: T): Promise>; abstract handleRequest(req: AuthenticatedServerRequest, res: ServerResponse): Promise; connectServer(): Promise; get newRequestId(): RequestId; destroy(reason?: string): Promise; /** * Ping the connected client for this transport. * Returns true on success, false on timeout/error. */ ping(timeoutMs?: number): Promise; protected ensureAuthInfo(req: AuthenticatedServerRequest, transport: LocalTransportAdapter): AuthInfo; handleIfElicitResult(req: AuthenticatedServerRequest): boolean; }