import type { IncomingMessage, ServerResponse } from 'node:http';
import { WebStandardStreamableHTTPServerTransport } from '@modelcontextprotocol/server';
import type { AuthInfo, Transport, WebStandardStreamableHTTPServerTransportOptions } from '@modelcontextprotocol/server';
/** Structural contract: existing SDK Node transport factories remain compatible. */
export interface NodeHttpTransport extends Transport {
    readonly sessionId: WebStandardStreamableHTTPServerTransport['sessionId'];
    onclose: WebStandardStreamableHTTPServerTransport['onclose'];
    onerror: WebStandardStreamableHTTPServerTransport['onerror'];
    onmessage: WebStandardStreamableHTTPServerTransport['onmessage'];
    setSupportedProtocolVersions: WebStandardStreamableHTTPServerTransport['setSupportedProtocolVersions'];
    setScopeChallengeResolver: WebStandardStreamableHTTPServerTransport['setScopeChallengeResolver'];
    closeSSEStream: WebStandardStreamableHTTPServerTransport['closeSSEStream'];
    closeStandaloneSSEStream: WebStandardStreamableHTTPServerTransport['closeStandaloneSSEStream'];
    handleRequest(req: IncomingMessage & {
        auth?: AuthInfo;
    }, res: ServerResponse, parsedBody?: unknown): Promise<void>;
}
export type NodeStreamableHTTPServerTransportOptions = WebStandardStreamableHTTPServerTransportOptions;
/**
 * Library-owned Node bridge to the supported SDK Web Standard transport.
 * Protocol, limits, sessions and SSE remain SDK-owned; Node conversion and
 * streamed writes remain owned by the explicitly declared patched Hono adapter.
 * Mirrors the SDK Node bridge's delegation contract without importing its
 * vulnerable transitive adapter. See docs/http-transport-security.md.
 */
export declare class NodeStreamableHTTPServerTransport implements NodeHttpTransport {
    private readonly web;
    constructor(options?: NodeStreamableHTTPServerTransportOptions);
    get sessionId(): string | undefined;
    get onclose(): Transport['onclose'];
    set onclose(callback: Transport['onclose']);
    get onerror(): Transport['onerror'];
    set onerror(callback: Transport['onerror']);
    get onmessage(): Transport['onmessage'];
    set onmessage(callback: Transport['onmessage']);
    start(): Promise<void>;
    close(): Promise<void>;
    send(...args: Parameters<WebStandardStreamableHTTPServerTransport['send']>): Promise<void>;
    setSupportedProtocolVersions(versions: string[]): void;
    setScopeChallengeResolver(...args: Parameters<WebStandardStreamableHTTPServerTransport['setScopeChallengeResolver']>): void;
    closeSSEStream(...args: Parameters<WebStandardStreamableHTTPServerTransport['closeSSEStream']>): void;
    closeStandaloneSSEStream(): void;
    handleRequest(req: IncomingMessage & {
        auth?: AuthInfo;
    }, res: ServerResponse, parsedBody?: unknown): Promise<void>;
}
//# sourceMappingURL=node-http.d.ts.map