/** * Tool Filter Service - orchestrates all filtering components */ import type { ToolDefinition } from '../../types/profile.js'; import type { Logger } from '../../core/logger.js'; import type { EnvConfigParser } from '../config/env-config-parser.js'; import type { HeaderConfigParser } from '../config/header-config-parser.js'; import type { OperationDetector } from '../operation/operation-detector.js'; import type { SessionToolFilterResult } from '../filter/session-tool-filter.js'; /** * Service that orchestrates tool filtering from environment and headers */ export declare class ToolFilterService { private envParser; private headerParser; private logger; private detector?; constructor(envParser: EnvConfigParser, headerParser: HeaderConfigParser, logger: Logger, detector?: OperationDetector | undefined); /** * Apply global filtering based on environment variables * * @param tools - Tools to filter * @param env - Environment variables (process.env) * @returns Filtered tools (or original if no config) */ applyGlobalFilter(tools: ToolDefinition[], env: NodeJS.ProcessEnv): ToolDefinition[]; /** * Apply session filtering based on X-Mcp4-Tools header * * @param tools - Tools to filter (typically after global filtering) * @param headerValue - X-Mcp4-Tools header value * @returns Session filter result with allowed tool names */ applySessionFilter(tools: ToolDefinition[], headerValue: string): SessionToolFilterResult; /** * Check if tool is allowed in session * * @param toolName - Tool name to check * @param sessionResult - Session filter result * @returns true if tool is allowed */ isToolAllowed(toolName: string, sessionResult: SessionToolFilterResult): boolean; } //# sourceMappingURL=tool-filter-service.d.ts.map