/**
 * Tool Filter - Inspired by Mistral Vibe CLI
 *
 * Filter available tools using glob patterns or regex:
 * - `--enabled-tools "bash,search,*file*"` - Enable only these tools
 * - `--disabled-tools "bash,web_*"` - Disable these tools
 *
 * Patterns support:
 * - Glob-style wildcards: `*`, `?`
 * - Comma-separated list: `bash,search,view_file`
 * - Negation with `!`: `*,!bash` (all except bash)
 */
import type { CodeBuddyTool } from '../codebuddy/client.js';
export interface ToolFilterConfig {
    /** Patterns for enabled tools (if empty, all tools are enabled) */
    enabledPatterns: string[];
    /** Patterns for disabled tools */
    disabledPatterns: string[];
}
export interface ToolFilterResult {
    /** Filtered tools */
    tools: CodeBuddyTool[];
    /** Tools that were filtered out */
    filtered: string[];
    /** Total original tools */
    originalCount: number;
    /** Total filtered tools */
    filteredCount: number;
}
/**
 * Parse a pattern string into individual patterns
 * Supports comma-separated list: "bash,search,*file*"
 */
export declare function parsePatterns(patternString: string): string[];
/**
 * Filter tools based on configuration
 */
export declare function filterTools(tools: CodeBuddyTool[], config: ToolFilterConfig): ToolFilterResult;
/**
 * Create a tool filter from CLI options
 */
export declare function createToolFilter(options: {
    enabledTools?: string;
    disabledTools?: string;
}): ToolFilterConfig;
/**
 * Format filter result for display
 */
export declare function formatFilterResult(result: ToolFilterResult): string;
/**
 * Get the current tool filter configuration
 */
export declare function getToolFilter(): ToolFilterConfig;
/**
 * Set the tool filter configuration
 */
export declare function setToolFilter(config: ToolFilterConfig): void;
/**
 * Reset the tool filter to default (all tools enabled)
 */
export declare function resetToolFilter(): void;
/**
 * Apply the current filter to tools
 */
export declare function applyToolFilter(tools: CodeBuddyTool[]): CodeBuddyTool[];
