import type { IFIXParser, Message } from 'fixparser';
import { MCPBase } from './MCPBase.ts';
import type { PluginOptions } from './PluginOptions.ts';
import type { MarketDataEntry, VerifiedOrder } from './schemas/index.ts';
export type MCPTransport = 'stdio' | 'http';
export type MCPOptions = PluginOptions & {
    /**
     * Transport type: 'stdio' for local CLI tools, 'http' for remote HTTP server
     * @default 'stdio'
     */
    transport?: MCPTransport;
    /**
     * Port number for HTTP transport (required when transport is 'http')
     */
    port?: number;
    /**
     * Server name for MCP protocol
     * @default 'fixparser'
     */
    serverName?: string;
    /**
     * Server version for MCP protocol
     * @default '1.0.0'
     */
    serverVersion?: string;
};
export declare class MCP extends MCPBase {
    /**
     * Transport type for this instance
     * @private
     */
    private transportType;
    /**
     * Port number for HTTP transport
     * @private
     */
    private port;
    /**
     * Server name for MCP protocol
     * @private
     */
    private serverName;
    /**
     * Server version for MCP protocol
     * @private
     */
    private serverVersion;
    /**
     * Node.js HTTP server instance (only for HTTP transport)
     * @private
     */
    private httpServer;
    /**
     * MCP server instance (created differently based on transport type)
     * @private
     */
    private mcpServer;
    /**
     * Stdio transport instance (only for stdio transport)
     * @private
     */
    private stdioTransport;
    /**
     * Map to store verified orders before execution
     * @private
     */
    protected verifiedOrders: Map<string, VerifiedOrder>;
    /**
     * Map to store pending requests and their callbacks
     * @private
     */
    protected pendingRequests: Map<string, (data: Message) => void>;
    /**
     * Map to store market data prices for each symbol
     * @private
     */
    protected marketDataPrices: Map<string, MarketDataEntry[]>;
    /**
     * Maximum number of price history entries to keep per symbol
     * @private
     */
    protected readonly MAX_PRICE_HISTORY = 100000;
    constructor({ transport, port, serverName, serverVersion, logger, onReady }: MCPOptions);
    register(parser: IFIXParser): Promise<void>;
    /**
     * Initialize stdio transport for local CLI usage
     * @private
     */
    private initializeStdioTransport;
    /**
     * Initialize HTTP transport for remote server usage
     * @private
     */
    private initializeHttpTransport;
    /**
     * Setup tools using setRequestHandler (for stdio transport with JSON schemas)
     * @private
     */
    private setupToolsViaRequestHandler;
    /**
     * Setup tools using registerTool (for HTTP transport with Zod schemas)
     * @private
     */
    private setupToolsViaRegisterTool;
}
export { PluginOptions } from './PluginOptions.ts';
