import { McpServer } from '@redocly/mcp-typescript-sdk/server/mcp.js';
import { StreamableHTTPServerTransport } from '@redocly/mcp-typescript-sdk/server/streamableHttp.js';
import type { Implementation } from '@redocly/mcp-typescript-sdk/types.js';
import type { McpServerInstance, McpServerType } from '../types.js';
export declare abstract class BaseMcpServer {
    #private;
    protected server: McpServer;
    protected transport: StreamableHTTPServerTransport;
    constructor(config: Implementation);
    protected abstract registerTools(): void;
    initialize(): Promise<McpServerInstance>;
    clearCleanupTimeout(): void;
    cleanup(): Promise<void>;
    protected abstract getServerType(): McpServerType;
}
export declare function createMcpServerInstance<T extends BaseMcpServer>(serverClass: new (...args: any[]) => T, ...args: any[]): Promise<McpServerInstance>;
//# sourceMappingURL=base-server.d.ts.map