/**
 * TalkToFigma stdio MCP 서버와 직접 통신하는 경량 JSON-RPC 클라이언트다.
 * 하위 AI CLI에게 도구 사용을 위임하지 않고 ju-hong-e 본체가 직접 MCP를 실행하기 위해 사용한다.
 */
import { type McpServerRecord, type McpStdioServerRecord } from '../../mcp/domain/server-record';
import { type TalkToFigmaToolDescriptor } from '../domain/planner';
import type { TraceLogger } from '../../../platform/types/index';
/**
 * @description stdio MCP call result를 문자열로 요약한다.
 * @param value tools/call 결과
 * @returns 사람이 읽을 수 있는 결과 문자열
 */
export declare function formatTalkToFigmaMcpResult(value: unknown): string;
/**
 * @description TalkToFigma stdio MCP 서버와 tools/list, tools/call 을 직접 주고받는다.
 */
export declare class TalkToFigmaDirectMcpClient {
    private readonly server;
    private readonly trace;
    private child?;
    private nextRequestId;
    private pendingRequests;
    private stderrTail;
    private stdoutBuffer;
    constructor(server: McpStdioServerRecord, trace: TraceLogger);
    /**
     * @description 서버 프로세스를 띄우고 initialize handshake를 완료한다.
     */
    connect(): Promise<void>;
    /**
     * @description 서버가 노출한 TalkToFigma 도구 목록을 읽는다.
     * @returns 도구 메타데이터 목록
     */
    listTools(): Promise<TalkToFigmaToolDescriptor[]>;
    /**
     * @description TalkToFigma 도구 1개를 직접 호출한다.
     * @param name 도구 이름
     * @param args 도구 인자
     * @returns 서버 응답 본문
     */
    callTool(name: string, args: Record<string, unknown>): Promise<unknown>;
    /**
     * @description 서버 프로세스를 종료하고 대기 중 요청을 정리한다.
     */
    close(): void;
    /**
     * @description 서버로 notification 메시지를 전송한다.
     * @param method JSON-RPC method
     * @param params notification params
     */
    private notify;
    /**
     * @description JSON-RPC request 1건을 보내고 결과를 기다린다.
     * @param method JSON-RPC method
     * @param params request params
     * @returns result payload
     */
    private request;
    /**
     * @description stdout buffer에서 완성된 newline-delimited MCP 메시지를 꺼내 dispatch 한다.
     */
    private consumeBufferedMessages;
    /**
     * @description 수신한 JSON-RPC 메시지를 pending request와 매칭한다.
     * @param messageText JSON body 문자열
     */
    private dispatchMessage;
    /**
     * @description 전송할 JSON-RPC body를 newline-delimited MCP stdio 형식으로 보낸다.
     * @param body JSON-RPC body
     */
    private writeMessage;
    /**
     * @description 대기 중인 모든 요청을 동일한 오류로 종료한다.
     * @param error 공통 오류 객체
     */
    private rejectAllPendingRequests;
}
/**
 * @description TalkToFigma direct client에 전달할 stdio 서버 레코드를 검증한다.
 * @param server MCP 서버 레코드
 * @returns stdio server record
 */
export declare function assertTalkToFigmaStdioServer(server: McpServerRecord): McpStdioServerRecord;
//# sourceMappingURL=direct-mcp-client.d.ts.map