/**
 * @license
 * Copyright 2025 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import type { TaskEntitlements } from "@workglow/task-graph";
import { CreateWorkflow, IExecuteContext, Task, TaskConfig } from "@workglow/task-graph";
import { DataPortSchema } from "@workglow/util/schema";
import type { McpServerConfig } from "../../util/McpTaskDeps";
/** Config includes MCP connection fields (transport-dependent shape is registered per platform). */
export type McpToolCallTaskConfig = TaskConfig & {
    inputSchema?: DataPortSchema;
    outputSchema?: DataPortSchema;
} & Record<string, unknown>;
export type McpToolCallTaskInput = Record<string, unknown>;
export type McpToolCallTaskOutput = Record<string, unknown>;
export declare class McpToolCallTask extends Task<McpToolCallTaskInput, McpToolCallTaskOutput, McpToolCallTaskConfig> {
    static type: string;
    static category: string;
    static title: string;
    static description: string;
    static cacheable: boolean;
    static customizable: boolean;
    static hasDynamicSchemas: boolean;
    static hasDynamicEntitlements: boolean;
    static entitlements(): TaskEntitlements;
    entitlements(): TaskEntitlements;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {};
        readonly additionalProperties: true;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly content: {
                readonly type: "array";
                readonly items: {
                    readonly anyOf: readonly [{
                        readonly type: "object";
                        readonly properties: {
                            readonly type: {
                                readonly type: "string";
                                readonly const: "text";
                            };
                            readonly text: {
                                readonly type: "string";
                            };
                            readonly annotations: {
                                readonly type: "object";
                                readonly properties: {
                                    readonly audience: {
                                        readonly type: "array";
                                        readonly items: {
                                            readonly type: "string";
                                            readonly enum: readonly ["user", "assistant"];
                                        };
                                    };
                                    readonly priority: {
                                        readonly type: "number";
                                    };
                                    readonly lastModified: {
                                        readonly type: "string";
                                    };
                                };
                                readonly additionalProperties: false;
                            };
                            readonly _meta: {
                                readonly type: "object";
                                readonly additionalProperties: true;
                            };
                        };
                        readonly required: readonly ["type", "text"];
                        readonly additionalProperties: false;
                    }, {
                        readonly type: "object";
                        readonly properties: {
                            readonly type: {
                                readonly type: "string";
                                readonly const: "image";
                            };
                            readonly data: {
                                readonly type: "string";
                            };
                            readonly mimeType: {
                                readonly type: "string";
                            };
                            readonly annotations: {
                                readonly type: "object";
                                readonly properties: {
                                    readonly audience: {
                                        readonly type: "array";
                                        readonly items: {
                                            readonly type: "string";
                                            readonly enum: readonly ["user", "assistant"];
                                        };
                                    };
                                    readonly priority: {
                                        readonly type: "number";
                                    };
                                    readonly lastModified: {
                                        readonly type: "string";
                                    };
                                };
                                readonly additionalProperties: false;
                            };
                            readonly _meta: {
                                readonly type: "object";
                                readonly additionalProperties: true;
                            };
                        };
                        readonly required: readonly ["type", "data", "mimeType"];
                        readonly additionalProperties: false;
                    }, {
                        readonly type: "object";
                        readonly properties: {
                            readonly type: {
                                readonly type: "string";
                                readonly const: "audio";
                            };
                            readonly data: {
                                readonly type: "string";
                            };
                            readonly mimeType: {
                                readonly type: "string";
                            };
                            readonly annotations: {
                                readonly type: "object";
                                readonly properties: {
                                    readonly audience: {
                                        readonly type: "array";
                                        readonly items: {
                                            readonly type: "string";
                                            readonly enum: readonly ["user", "assistant"];
                                        };
                                    };
                                    readonly priority: {
                                        readonly type: "number";
                                    };
                                    readonly lastModified: {
                                        readonly type: "string";
                                    };
                                };
                                readonly additionalProperties: false;
                            };
                            readonly _meta: {
                                readonly type: "object";
                                readonly additionalProperties: true;
                            };
                        };
                        readonly required: readonly ["type", "data", "mimeType"];
                        readonly additionalProperties: false;
                    }, {
                        readonly type: "object";
                        readonly properties: {
                            readonly type: {
                                readonly type: "string";
                                readonly const: "resource";
                            };
                            readonly resource: {
                                readonly type: "object";
                                readonly properties: {
                                    readonly uri: {
                                        readonly type: "string";
                                    };
                                    readonly text: {
                                        readonly type: "string";
                                    };
                                    readonly blob: {
                                        readonly type: "string";
                                    };
                                    readonly mimeType: {
                                        readonly type: "string";
                                    };
                                    readonly _meta: {
                                        readonly type: "object";
                                        readonly additionalProperties: true;
                                    };
                                };
                                readonly required: readonly ["uri"];
                                readonly additionalProperties: false;
                            };
                            readonly annotations: {
                                readonly type: "object";
                                readonly properties: {
                                    readonly audience: {
                                        readonly type: "array";
                                        readonly items: {
                                            readonly type: "string";
                                            readonly enum: readonly ["user", "assistant"];
                                        };
                                    };
                                    readonly priority: {
                                        readonly type: "number";
                                    };
                                    readonly lastModified: {
                                        readonly type: "string";
                                    };
                                };
                                readonly additionalProperties: false;
                            };
                            readonly _meta: {
                                readonly type: "object";
                                readonly additionalProperties: true;
                            };
                        };
                        readonly required: readonly ["type", "resource"];
                        readonly additionalProperties: false;
                    }, {
                        readonly type: "object";
                        readonly properties: {
                            readonly type: {
                                readonly type: "string";
                                readonly const: "resource_link";
                            };
                            readonly uri: {
                                readonly type: "string";
                            };
                            readonly name: {
                                readonly type: "string";
                            };
                            readonly description: {
                                readonly type: "string";
                            };
                            readonly mimeType: {
                                readonly type: "string";
                            };
                            readonly annotations: {
                                readonly type: "object";
                                readonly properties: {
                                    readonly audience: {
                                        readonly type: "array";
                                        readonly items: {
                                            readonly type: "string";
                                            readonly enum: readonly ["user", "assistant"];
                                        };
                                    };
                                    readonly priority: {
                                        readonly type: "number";
                                    };
                                    readonly lastModified: {
                                        readonly type: "string";
                                    };
                                };
                                readonly additionalProperties: false;
                            };
                            readonly icons: {
                                readonly type: "array";
                                readonly items: {
                                    readonly type: "object";
                                    readonly properties: {
                                        readonly src: {
                                            readonly type: "string";
                                        };
                                        readonly mimeType: {
                                            readonly type: "string";
                                        };
                                        readonly sizes: {
                                            readonly type: "array";
                                            readonly items: {
                                                readonly type: "string";
                                            };
                                        };
                                        readonly theme: {
                                            readonly type: "string";
                                            readonly enum: readonly ["light", "dark"];
                                        };
                                    };
                                    readonly additionalProperties: false;
                                };
                            };
                            readonly title: {
                                readonly type: "string";
                            };
                            readonly _meta: {
                                readonly type: "object";
                                readonly additionalProperties: true;
                            };
                        };
                        readonly required: readonly ["type", "uri", "name"];
                        readonly additionalProperties: false;
                    }];
                };
                readonly title: "Content";
                readonly description: "The content returned by the tool";
            };
            readonly isError: {
                readonly type: "boolean";
                readonly title: "Is Error";
                readonly description: "Whether the tool call resulted in an error";
            };
        };
        readonly required: readonly ["content", "isError"];
        readonly additionalProperties: false;
    };
    static configSchema(): DataPortSchema;
    inputSchema(): DataPortSchema;
    outputSchema(): DataPortSchema;
    private _schemasDiscoveringPromise;
    discoverSchemas(_signal?: AbortSignal, serverConfig?: McpServerConfig): Promise<void>;
    execute(input: McpToolCallTaskInput, context: IExecuteContext): Promise<McpToolCallTaskOutput>;
}
export declare const mcpToolCall: (input: McpToolCallTaskInput, config: McpToolCallTaskConfig) => Promise<McpToolCallTaskOutput>;
declare module "@workglow/task-graph" {
    interface Workflow {
        mcpToolCall: CreateWorkflow<McpToolCallTaskInput, McpToolCallTaskOutput, McpToolCallTaskConfig>;
    }
}
//# sourceMappingURL=McpToolCallTask.d.ts.map