/**
 * MCP-AQL Tools - Unified query interface for AI agents
 *
 * Provides two endpoint modes configurable via MCP_AQL_ENDPOINT_MODE environment variable:
 *
 * ## Mode 1: CRUDE Endpoints (Default) - MCP_AQL_ENDPOINT_MODE=crude
 * 5 tools: mcp_aql_create, mcp_aql_read, mcp_aql_update, mcp_aql_delete, mcp_aql_execute (~4,300 tokens)
 *
 * ## Mode 2: Single Endpoint (Minimal) - MCP_AQL_ENDPOINT_MODE=single
 * 1 tool: mcp_aql (~350 tokens)
 * Ideal for multi-server deployments where token budget is constrained.
 *
 * Note: These tools are only registered when MCP_INTERFACE_MODE=mcpaql (default).
 * When MCP_INTERFACE_MODE=discrete, discrete tools are registered instead.
 *
 * ## Why 5 CRUDE Endpoints? (Default Mode)
 *
 * The 5-endpoint CRUDE pattern (Create, Read, Update, Delete, Execute) was chosen for:
 *
 * 1. **User Comprehension**: CRUDE extends CRUD with Execute for non-idempotent
 *    operations, making it easy for users to reason about what each endpoint can do.
 *
 * 2. **Platform Annotations**: MCP platforms like ChatGPT's apps require
 *    tool annotations that describe safety and destructiveness. The 5-endpoint
 *    split maps directly to distinct permission levels:
 *    - CREATE: additive, non-destructive (readOnlyHint: false, destructiveHint: false)
 *    - READ: safe, read-only (readOnlyHint: true, destructiveHint: false)
 *    - UPDATE: modifying, potentially destructive (readOnlyHint: false, destructiveHint: true)
 *    - DELETE: destructive (readOnlyHint: false, destructiveHint: true)
 *    - EXECUTE: non-idempotent, potentially destructive (readOnlyHint: false, destructiveHint: true)
 *
 * 3. **Granular Permission Control**: Users can grant READ endpoint full access
 *    while locking down CREATE, UPDATE, DELETE, and EXECUTE. This enables safe
 *    read-only integrations without exposing mutation capabilities.
 *
 * ## Why Single Endpoint? (Minimal Mode)
 *
 * The single-endpoint mode was added for:
 *
 * 1. **Token Efficiency**: ~350 tokens vs ~4,300 tokens (92% reduction)
 * 2. **Multi-Server Deployments**: When running multiple MCP servers, token
 *    budgets can be constrained. Single endpoint reduces overhead.
 * 3. **Simplified Integration**: Some clients prefer a single entry point.
 *
 * Security is maintained through server-side Gatekeeper enforcement - the
 * server determines which operation type is being executed and applies
 * appropriate permission checks.
 *
 * ## GraphQL-Style Introspection
 *
 * MCP-AQL follows GraphQL patterns for self-documentation. Tool descriptions
 * are generated dynamically from OPERATION_ROUTES, ensuring they always reflect
 * the current available operations.
 *
 * ### Introspection Examples
 *
 * List all available operations:
 * ```json
 * { "operation": "introspect", "params": { "query": "operations" } }
 * ```
 *
 * Get details for a specific operation (parameters, examples, return types):
 * ```json
 * { "operation": "introspect", "params": { "query": "operations", "name": "create_element" } }
 * ```
 *
 * Discover available types (e.g., ElementType enum values):
 * ```json
 * { "operation": "introspect", "params": { "query": "types", "name": "ElementType" } }
 * ```
 *
 * ### Design Philosophy
 *
 * - **Single source of truth**: OPERATION_ROUTES defines all operations
 * - **Dynamic descriptions**: Adding an operation to OPERATION_ROUTES automatically
 *   updates tool descriptions - no manual synchronization needed
 * - **Introspection-first**: LLMs discover parameters via introspect, not static docs
 * - **GraphQL heritage**: Patterns familiar to any LLM trained on GraphQL
 */
import type { MCPAQLHandler } from '../../handlers/mcp-aql/MCPAQLHandler.js';
import type { ToolDefinition, ToolHandler } from '../../handlers/types/ToolTypes.js';
/**
 * Get MCP-AQL tools for registration in the ToolRegistry.
 *
 * Returns different tools based on MCP_AQL_ENDPOINT_MODE environment variable:
 * - 'crude' (default): 5 CRUDE endpoints (Create, Read, Update, Delete, Execute) (~4,300 tokens)
 * - 'single': 1 unified endpoint (~350 tokens)
 *
 * Note: MCP_AQL_MODE is supported as a deprecated alias for backward compatibility.
 */
export declare function getMCPAQLTools(handler: MCPAQLHandler): Array<{
    tool: ToolDefinition;
    handler: ToolHandler;
}>;
//# sourceMappingURL=MCPAQLTools.d.ts.map