/**
 * MCP Server type definitions
 */
import type { Logger } from '@polka-codes/core';
import type { ZodType } from 'zod';
/**
 * Context passed to tool handlers for workflow execution
 */
export type McpServerToolContext = {
    logger: Logger;
    defaultProvider?: DefaultProviderConfig;
};
/**
 * Default provider configuration
 */
export type DefaultProviderConfig = {
    /** Default AI provider */
    provider?: string;
    /** Default model */
    model?: string;
    /** Default API key (overrides config file) */
    apiKey?: string;
    /** Default model parameters */
    parameters?: Record<string, unknown>;
};
/**
 * Tool that can be exposed via MCP server
 */
export interface McpServerTool {
    name: string;
    description: string;
    inputSchema: ZodType;
    handler: (args: Record<string, unknown>, context: McpServerToolContext) => Promise<unknown>;
}
/**
 * Resource that can be exposed via MCP server
 */
export interface McpServerResource {
    uri: string;
    name: string;
    description?: string;
    mimeType?: string;
    handler: () => Promise<string>;
}
/**
 * Provider and model override options for individual tool calls
 */
export interface ProviderOverride {
    /** Override the AI provider for this call (e.g., 'anthropic', 'deepseek', 'openai') */
    provider?: string;
    /** Override the model for this call (e.g., 'claude-sonnet-4-5', 'deepseek-chat') */
    model?: string;
    /** Override model parameters for this call */
    parameters?: Record<string, unknown>;
}
/**
 * MCP Server configuration (for running polka-codes as an MCP server)
 */
export interface McpServerConfig {
    serverInfo: {
        name: string;
        version: string;
    };
    capabilities: {
        tools?: boolean;
        resources?: boolean;
        prompts?: boolean;
    };
    /** Default provider configuration for all tools */
    defaultProvider?: DefaultProviderConfig;
}
//# sourceMappingURL=types.d.ts.map