/** Admin mount of the in-deployment MCP server (`@voyant-travel/mcp`). */ export declare const MCP_ENDPOINT_PATH = "/v1/admin/mcp"; /** Placeholder shown in every snippet — operators paste their own `voy_` token. */ export declare const MCP_TOKEN_PLACEHOLDER = "voy_your_api_token"; export type McpToolRisk = "low" | "medium" | "high" | "critical"; /** One entry of `GET /v1/admin/mcp/manifest`, narrowed to what this page renders. */ export interface McpManifestTool { capabilityId: string; owner: string; name: string; description: string; requiredScopes: string[]; deploymentRisk: McpToolRisk; audience?: { allowed?: string[]; }; annotations?: { readOnlyHint?: boolean; }; actionPolicy?: { approval?: "never" | "conditional" | "required"; }; } export interface McpManifest { version: string; serverInfo: { name: string; version: string; }; tools: McpManifestTool[]; } export type McpClientId = "claude-code" | "cursor" | "vscode" | "curl"; export interface McpClientConfig { id: McpClientId; /** Rendered as a syntax hint only — the snippet is plain text. */ language: "bash" | "json"; /** Where the snippet goes (a file path) or `null` for a command. */ file: string | null; snippet: string; } /** * Absolute endpoint an external MCP client dials. The admin runtime's `baseUrl` * is usually the relative API prefix (`/api`), so it is joined to the browser * origin; an already-absolute base is used as-is (split-host deployments). */ export declare function resolveMcpEndpoint(baseUrl: string, origin?: string): string; /** * Connection snippets for the MCP clients operators actually use. Every client * speaks the same Streamable HTTP transport with a Bearer API token, so the * snippets differ only in the file/wrapper each client expects. */ export declare function buildMcpClientConfigs(endpoint: string, token?: string): McpClientConfig[]; interface McpMessages { title: string; description: string; connectionTitle: string; connectionDescription: string; endpointLabel: string; transportLabel: string; transportValue: string; authLabel: string; authValue: string; serverLabel: string; contractLabel: string; copy: string; copied: string; stepsTitle: string; stepsDescription: string; step1Title: string; step1Body: string; step1Action: string; step2Title: string; step2Body: string; step3Title: string; step3Body: string; connectTitle: string; connectDescription: string; connectStep1: string; connectStep2: string; connectStep3: string; connectedTitle: string; connectedDescription: string; connectedEmpty: string; connectedSince: string; accessRead: string; accessWrite: string; disconnect: string; disconnecting: string; disconnectConfirm: string; connectorsFailed: string; developersTitle: string; developersDescription: string; clientsTitle: string; clientsDescription: string; clientClaudeCode: string; clientCursor: string; clientVsCode: string; clientCurl: string; fileLabel: string; tokenNotice: string; toolsTitle: string; toolsDescription: string; toolsSearchPlaceholder: string; toolsEmpty: string; toolsNoMatch: string; toolsCount: string; scopesLabel: string; readOnly: string; approvalRequired: string; riskLow: string; riskMedium: string; riskHigh: string; riskCritical: string; loadFailed: string; retry: string; } export declare function useMcpMessages(): McpMessages; export declare function mcpRiskLabel(risk: McpToolRisk, messages: McpMessages): string; /** Case-insensitive match over the fields an operator would search by. */ export declare function filterMcpTools(tools: McpManifestTool[], query: string): McpManifestTool[]; export {};