import { SSETransportConfig } from "../transports/sse/types.js";
import { HttpStreamTransportConfig } from "../transports/http/types.js";
import { AuthConfig } from "../auth/types.js";
export type TransportType = "stdio" | "sse" | "http-stream";
export interface TransportConfig {
    type: TransportType;
    options?: SSETransportConfig | HttpStreamTransportConfig;
    auth?: AuthConfig;
}
export interface MCPServerConfig {
    name?: string;
    version?: string;
    basePath?: string;
    transport?: TransportConfig;
}
export type ServerCapabilities = {
    tools?: {
        listChanged?: true;
    };
    prompts?: {
        listChanged?: true;
    };
    resources?: {
        listChanged?: true;
        subscribe?: true;
    };
};
export declare class MCPServer {
    private server;
    private toolsMap;
    private promptsMap;
    private resourcesMap;
    private toolLoader;
    private promptLoader;
    private resourceLoader;
    private serverName;
    private serverVersion;
    private basePath;
    private transportConfig;
    private capabilities;
    private isRunning;
    private transport?;
    private shutdownPromise?;
    private shutdownResolve?;
    constructor(config?: MCPServerConfig);
    private resolveBasePath;
    private createTransport;
    private readPackageJson;
    private getDefaultName;
    private getDefaultVersion;
    private setupHandlers;
    private detectCapabilities;
    private getSdkVersion;
    start(): Promise<void>;
    stop(): Promise<void>;
    get IsRunning(): boolean;
}
