import type { StrategyManager } from './strategy-manager.js';
import type { PromptRefiner } from './prompt-refiner.js';
interface WorkflowResponse {
    messages: Array<{
        role: 'user' | 'assistant';
        content: {
            type: 'text';
            text: string;
        };
    }>;
}
export declare abstract class BaseWorkflowHandler {
    protected strategyManager: StrategyManager;
    protected promptRefiner: PromptRefiner;
    constructor(strategyManager: StrategyManager, promptRefiner: PromptRefiner);
    abstract handle(args: Record<string, any>): Promise<WorkflowResponse>;
    protected createResponse(text: string): WorkflowResponse;
}
export declare class AutoRefineHandler extends BaseWorkflowHandler {
    handle(args: Record<string, any>): Promise<WorkflowResponse>;
}
export declare class RefineWithHandler extends BaseWorkflowHandler {
    handle(args: Record<string, any>): Promise<WorkflowResponse>;
}
export declare class CompareRefinementsHandler extends BaseWorkflowHandler {
    handle(args: Record<string, any>): Promise<WorkflowResponse>;
}
export declare class TwoStepWorkflowHandler extends BaseWorkflowHandler {
    handlePrepareRefinement(args: Record<string, any>): Promise<WorkflowResponse>;
    handleExecuteRefinement(args: Record<string, any>): Promise<WorkflowResponse>;
    handle(args: Record<string, any>): Promise<WorkflowResponse>;
}
export declare class ThreeStepWorkflowHandler extends BaseWorkflowHandler {
    handleStep1GetCategories(args: Record<string, any>): Promise<WorkflowResponse>;
    handleStep2GetStrategies(args: Record<string, any>): Promise<WorkflowResponse>;
    handleStep3ExecuteStrategy(args: Record<string, any>): Promise<WorkflowResponse>;
    handle(args: Record<string, any>): Promise<WorkflowResponse>;
}
export declare class WorkflowFactory {
    private handlers;
    constructor(strategyManager: StrategyManager, promptRefiner: PromptRefiner);
    handleWorkflow(name: string, args: Record<string, any>): Promise<WorkflowResponse>;
    getAvailableWorkflows(): string[];
}
export {};
//# sourceMappingURL=workflow-factory.d.ts.map