import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import type { ServerRecord } from "../types/index.js";
export declare function setMcpVersion(version: string): void;
export declare function getMcpVersion(): string;
export type McpContentBlock = {
    type: "text";
    text: string;
    _meta?: Record<string, unknown>;
};
export type McpResponse = {
    content: Array<McpContentBlock>;
    structuredContent?: Record<string, unknown>;
    isError?: boolean;
};
/**
 * Send a structured log message via the MCP server (no-op when server is undefined).
 */
export declare function mcpLog(server: McpServer | undefined, message: string, level?: "info" | "warning" | "error"): Promise<void>;
/**
 * Resolve the target server for an MCP tool call.
 *
 * - If `params.server` is provided, delegates to `findServer` (by name or IP).
 * - If there is exactly one server in the list, returns it automatically.
 * - Otherwise returns undefined (caller should return an error response).
 */
export declare function resolveServerForMcp(params: {
    server?: string;
}, servers: ServerRecord[]): ServerRecord | undefined;
/**
 * Wrap a success payload in the standard MCP response shape.
 *
 * Pass `largeResult: true` to annotate the content block with
 * `_meta["anthropic/maxResultSizeChars"]` (500K), preventing Claude Code
 * from truncating large outputs like audit JSON or evidence data.
 */
export declare function mcpSuccess(data: Record<string, unknown>, opts?: {
    largeResult?: boolean;
}): McpResponse;
/**
 * Wrap an error message (and optional metadata) in the standard MCP error response shape.
 */
export declare function mcpError(error: string, hint?: string, suggestedActions?: Array<{
    command: string;
    reason: string;
}>): McpResponse;
export declare const ELICIT_PROVIDER_SCHEMA: {
    type: "string";
    title: string;
    oneOf: {
        const: "hetzner" | "digitalocean" | "vultr" | "linode";
        title: string;
    }[];
};
export declare const ELICIT_SERVER_NAME_SCHEMA: {
    type: "string";
    title: string;
    description: string;
    minLength: number;
    maxLength: number;
};
export type ElicitResult = {
    status: "accepted";
    content: Record<string, unknown>;
} | {
    status: "cancelled";
} | {
    status: "unsupported";
};
export declare function supportsElicitation(server: McpServer | undefined): boolean;
export declare function elicitMissingParams(server: McpServer | undefined, message: string, requestedSchema: object): Promise<ElicitResult>;
/**
 * Look up the API token for the given provider.
 *
 * Returns `{ token }` on success, or `{ error: McpResponse }` when no token
 * is configured so callers can do a simple discriminated-union check and
 * return the error response immediately.
 */
export declare function requireProviderToken(provider: string): {
    token: string;
} | {
    error: McpResponse;
};
//# sourceMappingURL=utils.d.ts.map