import { EventEmitter } from 'events';
import type { ListToolsResult, CallToolResult, ListResourcesResult, ReadResourceResult, ListPromptsResult, GetPromptResult, LoggingLevel, IMcpClient, ServerDetails } from './types.js';
import type { ListResourceTemplatesResult } from '@modelcontextprotocol/sdk/types.js';
import { BridgeClient } from './bridge-client.js';
export declare class SessionClient extends EventEmitter implements IMcpClient {
    private bridgeClient;
    private sessionName;
    constructor(sessionName: string, bridgeClient: BridgeClient);
    private setupNotificationForwarding;
    private withRetry;
    close(): Promise<void>;
    getServerDetails(): Promise<ServerDetails>;
    ping(): Promise<void>;
    listTools(cursor?: string): Promise<ListToolsResult>;
    callTool(name: string, args?: Record<string, unknown>): Promise<CallToolResult>;
    listResources(cursor?: string): Promise<ListResourcesResult>;
    listResourceTemplates(cursor?: string): Promise<ListResourceTemplatesResult>;
    readResource(uri: string): Promise<ReadResourceResult>;
    subscribeResource(uri: string): Promise<void>;
    unsubscribeResource(uri: string): Promise<void>;
    listPrompts(cursor?: string): Promise<ListPromptsResult>;
    getPrompt(name: string, args?: Record<string, string>): Promise<GetPromptResult>;
    setLoggingLevel(level: LoggingLevel): Promise<void>;
    getSDKClient(): never;
}
export declare function createSessionClient(sessionName: string): Promise<SessionClient>;
export declare function withSessionClient<T>(sessionName: string, callback: (client: IMcpClient) => Promise<T>): Promise<T>;
//# sourceMappingURL=session-client.d.ts.map