import { EventEmitter } from 'events'; import type { FacadeClientConfig, CallContext, BatchCall, BatchResult } from './types.js'; export declare class FacadeClient { private transport; private config; private connecting; private log; readonly events: EventEmitter<[never]>; constructor(config: FacadeClientConfig); /** * Connect to the MCP server. Also called lazily on first call(). */ connect(): Promise; /** * Disconnect and clean up the child process / connection. */ disconnect(): Promise; /** * Call a facade action. * * @param context Per-call context that overrides config-level defaults. * * @example * const epics = await client.call('sentinel', 'list_epics'); * const issue = await client.call('sentinel', 'create_issue', { title: 'Fix login' }); * const scoped = await client.call('sentinel', 'list_epics', {}, { scope: 'portfolio' }); */ call(facade: string, action: string, params?: Record, context?: CallContext): Promise; /** * Batch multiple facade calls (max 20, parallel execution). * * @param context Batch-level context applied to all calls. * Individual BatchCall.context merges with (and overrides) this. * * For HTTP transport, uses the daemon's /batch endpoint directly. * For stdio transport, runs calls in parallel via Promise.all. */ batch(calls: BatchCall[], context?: CallContext): Promise; /** Whether the client is currently connected */ get isConnected(): boolean; /** Current transport mode for diagnostics */ get mode(): string; private doConnect; /** Get the HTTP transport if we're using one (for native /batch) */ private getHttpTransport; } //# sourceMappingURL=facade-client.d.ts.map