import type { QueryStrategy, StrategyContext, StrategyResult } from '../shared/types';
import { DebugManager } from '../shared/debugging';
export declare abstract class BaseStrategy implements QueryStrategy {
    protected debugManager: DebugManager;
    constructor();
    abstract execute(input: string, context: StrategyContext): Promise<StrategyResult>;
    abstract getName(): string;
    abstract getDescription(): string;
    protected generateAnswer(docs: any[], query: string, context: StrategyContext): Promise<string>;
    protected formatResult(answer: string | null, docs: any[], context: StrategyContext): StrategyResult;
    protected handleDebugging(originalQuery: string, context: StrategyContext): Promise<void>;
    protected initializeDebugManager(strategyName: string, config: any): void;
}
