import { Tool } from '../../shared/tool';
import { ToolRepository } from '../tool-repository';
import { ToolSearchStrategy } from '../tool-search-strategy';
/**
 * Implements a tool search strategy based on tag and description matching.
 * Tools are scored based on the occurrence of query words in their tags and description.
 */
export declare class TagSearchStrategy implements ToolSearchStrategy {
    private readonly toolRepository;
    /**
     * Weight for description words vs. explicit tags (explicit tags have a weight of 1.0).
     */
    private readonly descriptionWeight;
    /**
     * Creates an instance of TagSearchStrategy.
     *
     * @param toolRepository The repository to search for tools.
     * @param descriptionWeight The weight to apply to words found in the tool's description.
     */
    constructor(toolRepository: ToolRepository, descriptionWeight?: number);
    /**
     * Searches for tools by matching tags and description content against a query.
     *
     * @param query The search query string.
     * @param limit The maximum number of tools to return. If 0, all matched tools are returned.
     * @returns A promise that resolves to a list of tools ordered by relevance.
     */
    searchTools(query: string, limit?: number): Promise<Tool[]>;
}
