import { Tool } from "../clients/types";
export type ToolOverrideFunction = (originalArgs: any[], originalTool: Tool) => Promise<any> | any;
export interface ToolOverrideRegistration {
    pattern: string | RegExp;
    override: ToolOverrideFunction;
    priority: number;
}
export type ToolWrapper = (originalFunction: (...args: any[]) => any, originalArgs: any[], originalTool: Tool) => Promise<any> | any;
export interface ToolWrapperRegistration {
    pattern: string | RegExp;
    wrapper: ToolWrapper;
    priority: number;
}
export interface PatternMatcher {
    matches(toolName: string): boolean;
    pattern: string | RegExp;
}
export declare class StringPatternMatcher implements PatternMatcher {
    pattern: string;
    constructor(pattern: string);
    matches(toolName: string): boolean;
}
export declare class RegexPatternMatcher implements PatternMatcher {
    pattern: RegExp;
    constructor(pattern: RegExp);
    matches(toolName: string): boolean;
}
export declare function createPatternMatcher(pattern: string | RegExp): PatternMatcher;
