/**
 * builtin 명령 `/mcp` 가 재사용하는 보조 로직을 모아둔 파일이다.
 * 파싱, 검증, 파일 materialize 같은 세부 계산을 action에서 분리해 유지보수 범위를 줄인다.
 */
import { type McpServerRecord, type McpServerRecordInput } from '../domain/server-record';
import type { AIServiceType, ParsedCliArgs, StoragePaths, TraceLogger } from '../../../platform/types/index';
export type { McpServerRecord } from '../domain/server-record';
declare const MCP_SERVICE_ORDER: AIServiceType[];
/**
 * Mcp Service Sync Result 처리 결과를 표현하는 구조다.
 * hover 정보만으로도 용도와 필드 의미를 파악할 수 있도록 이 선언을 유지한다.
 */
export type McpServiceSyncResult = {
    /**
     * trace나 오류 표시용 상세 설명
     */
    detail: string;
    /**
     * 작업 또는 점검이 성공했는지 여부
     */
    ok: boolean;
    /**
     * 대상 AI 서비스 식별자
     */
    service: AIServiceType;
    /**
     * 테스트 모드 등으로 실제 실행이 생략됐는지 여부
     */
    skipped?: boolean;
};
/**
 * Mcp Endpoint Health Result 처리 결과를 표현하는 구조다.
 * hover 정보만으로도 용도와 필드 의미를 파악할 수 있도록 이 선언을 유지한다.
 */
export type McpEndpointHealthResult = {
    /**
     * 헬스체크 대상 라벨이다.
     */
    label: string;
    /**
     * trace나 오류 표시용 상세 설명
     */
    detail: string;
    /**
     * 작업 또는 점검이 성공했는지 여부
     */
    ok: boolean;
    /**
     * status Code 값
     */
    statusCode?: number;
};
/**
 * Mcp Health Check Result 처리 결과를 표현하는 구조다.
 * hover 정보만으로도 용도와 필드 의미를 파악할 수 있도록 이 선언을 유지한다.
 */
export type McpHealthCheckResult = {
    /**
     * endpoint 값
     */
    endpoint: McpEndpointHealthResult;
    /**
     * server 값
     */
    server: McpServerRecord;
    /**
     * services 값
     */
    services: McpServiceSyncResult[];
};
/**
 * @description
 * 특정 AI 서비스 한 곳에만 MCP 서버 설정을 반영한다.
 */
export declare function registerMcpServerForService(server: McpServerRecord, service: AIServiceType, parsedArgs: ParsedCliArgs, trace: TraceLogger): McpServiceSyncResult;
/**
 * @description
 * Codex/Claude/Gemini에 공통 MCP 서버 설정을 반영한다.
 */
export declare function registerMcpServerForAllServices(server: McpServerRecord, parsedArgs: ParsedCliArgs, trace: TraceLogger): McpServiceSyncResult[];
/**
 * @description
 * 특정 AI 서비스 한 곳에서만 MCP 서버 설정을 제거한다.
 */
export declare function unregisterMcpServerForService(server: McpServerRecord, service: AIServiceType, parsedArgs: ParsedCliArgs, trace: TraceLogger): McpServiceSyncResult;
/**
 * @description
 * Codex/Claude/Gemini에서 공통 MCP 서버 설정을 제거한다.
 */
export declare function unregisterMcpServerForAllServices(server: McpServerRecord, parsedArgs: ParsedCliArgs, trace: TraceLogger): McpServiceSyncResult[];
/**
 * @description
 * 등록된 MCP 서버의 서비스별 반영 상태를 읽기 전용으로 확인한다.
 */
export declare function getMcpServiceStatuses(server: McpServerRecord): McpServiceSyncResult[];
/**
 * @description
 * 선택한 MCP 서버의 endpoint 도달 여부와 서비스별 설정 반영 상태를 함께 점검한다.
 */
export declare function runMcpHealthCheck(server: McpServerRecord, trace: TraceLogger): Promise<McpHealthCheckResult>;
/**
 * @description
 * 현재 레지스트리에 등록된 MCP 서버 목록을 반환한다.
 */
export declare function listRegisteredMcpServers(paths: StoragePaths): McpServerRecord[];
/**
 * @description
 * transport 포함 MCP 서버 입력을 받아 레지스트리에 등록하거나 기존 항목을 갱신한다.
 */
export declare function upsertRegisteredMcpServerRecord(paths: StoragePaths, input: McpServerRecordInput): {
    created: boolean;
    server: McpServerRecord;
};
/**
 * @description
 * 이름과 URL을 받아 HTTP MCP 서버를 등록하거나 기존 항목을 갱신한다.
 */
export declare function upsertRegisteredMcpServer(paths: StoragePaths, rawName: string, rawUrl: string): {
    created: boolean;
    server: McpServerRecord;
};
/**
 * @description
 * 이름 기준으로 레지스트리에서 MCP 서버를 찾아 제거한다.
 */
export declare function removeRegisteredMcpServer(paths: StoragePaths, serverName: string): McpServerRecord | undefined;
/**
 * @description
 * 이름 기준으로 레지스트리에서 MCP 서버를 조회한다.
 */
export declare function findRegisteredMcpServer(paths: StoragePaths, serverName: string): McpServerRecord | undefined;
export { MCP_SERVICE_ORDER };
//# sourceMappingURL=runtime.d.ts.map