/**
 * Tool Registry Types
 *
 * Types for MCP servers and CLI tools as pluggable integration providers
 * with per-agent access control via policy profiles.
 */
export interface McpServerConfig {
    /** Server name (unique identifier) */
    name: string;
    /** URL for remote MCP servers */
    url?: string;
    /** Command for local MCP servers (e.g., "node ./tools/my-mcp-server.js") */
    command?: string;
    /** Args for local MCP server command */
    args?: string[];
    /** Environment variable name for auth token (e.g., "${ARCADE_API_KEY}") */
    auth?: string;
    /** Human-readable description */
    description: string;
}
export interface CliToolConfig {
    /** Tool name (unique identifier) */
    name: string;
    /** The command/binary to invoke */
    command: string;
    /** Human-readable description */
    description: string;
    /** Shell command to detect if tool is installed (e.g., "which gh") */
    detect?: string;
    /** Shell command to install the tool (e.g., "brew install gh") */
    install?: string;
    /** Whether this is a built-in tool (always available, no config needed) */
    builtin?: boolean;
}
export interface ToolRegistry {
    'mcp-servers': Record<string, Omit<McpServerConfig, 'name'>>;
    'cli-tools': Record<string, Omit<CliToolConfig, 'name'>>;
}
export interface ToolPolicy {
    mcp: string[];
    cli: string[];
    /** Per-MCP-server fine-grained access (e.g., arcade: { allow: ['asana', 'slack'] }) */
    [serverName: string]: string[] | {
        allow: string[];
    } | undefined;
}
export interface ToolCheckResult {
    name: string;
    type: 'mcp' | 'cli';
    available: boolean;
    error?: string;
    installHint?: string;
}
export declare const COMMON_CLI_TOOLS: CliToolConfig[];
/** Default built-in tool (prlt itself) */
export declare const BUILTIN_PRLT_TOOL: CliToolConfig;
