import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
import { type HandlerClass } from './services/handlers';
import type { ILoggerFactory, IStorageInterface } from '../shared/interfaces';
import { Network } from 'x402/types';
import { IFacilitatorService } from './services/facilitators/IFacilitatorService';
export interface X402Config {
    payTo: string;
    network: Network;
    facilitator: IFacilitatorService;
    baseMCPServerDomain: string;
}
export interface ServerConfig {
    name: string;
    version: string;
    x402Config: X402Config;
    storage?: IStorageInterface;
    loggerFactory?: ILoggerFactory;
    sessionId?: string;
}
export interface PaymentConfig {
    payTo: string;
    network: Network;
    maxTimeoutSeconds: number;
}
export declare class X402MCPServer extends McpServer {
    readonly options: ServerConfig;
    private paymentOrchestrator;
    private logger;
    private handlerClasses;
    constructor(options: ServerConfig);
    registerHandlers(...handlerClasses: HandlerClass[]): void;
    connect(transport: Transport): Promise<void>;
    registerSessionHandlers(): Promise<void>;
}
