/**
 * @license
 * Copyright 2025 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 *
 * Platform MCP client + JSON Schema for MCP tasks. Registered from browser/node/bun
 * entry files so task implementations do not import `@workglow/tasks` (self-import).
 */
import type { Client } from "@modelcontextprotocol/sdk/client";
import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
import type { OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js";
import type { DataPortSchemaObject } from "@workglow/util/schema";
import type { McpAuthConfig } from "./McpAuthTypes";
/** Configuration for connecting to an MCP server (superset of all platform transports). */
export interface McpServerConfig {
    readonly transport?: string;
    readonly server_url?: string;
    readonly command?: string;
    readonly args?: string[];
    readonly env?: Readonly<Record<string, string>>;
    readonly auth?: McpAuthConfig;
    readonly auth_type?: string;
    readonly authProvider?: OAuthClientProvider;
}
export interface McpTaskDeps {
    readonly mcpClientFactory: {
        readonly create: (config: McpServerConfig, signal?: AbortSignal) => Promise<{
            client: Client;
            transport: Transport;
        }>;
    };
    readonly mcpServerConfigSchema: {
        readonly properties: DataPortSchemaObject["properties"];
        readonly allOf: NonNullable<DataPortSchemaObject["allOf"]>;
    };
    readonly createStdioTransport: (config: McpServerConfig) => Promise<Transport>;
}
export declare const MCP_TASK_DEPS: import("@workglow/util").ServiceToken<McpTaskDeps>;
export declare function registerMcpTaskDeps(deps: McpTaskDeps): void;
export declare function getMcpTaskDeps(): McpTaskDeps;
//# sourceMappingURL=McpTaskDeps.d.ts.map