import type { WorkflowRule, RuleMatchMethod, Language } from '../core/models/types.js';
import type { ProviderType } from '../core/workflow/types.js';
import { type StreamCallback } from './runner.js';
export interface JudgeStatusOptions {
    cwd: string;
    stepName: string;
    provider?: ProviderType;
    resolvedProvider?: ProviderType;
    resolvedModel?: string;
    language?: Language;
    interactive?: boolean;
    onStream?: StreamCallback;
    onJudgeStage?: (entry: {
        stage: 1 | 2 | 3;
        method: 'structured_output' | 'phase3_tag' | 'ai_judge';
        status: 'done' | 'error' | 'skipped';
        instruction: string;
        response: string;
    }) => void;
    onStructuredPromptResolved?: (promptParts: {
        systemPrompt: string;
        userInstruction: string;
    }) => void;
}
export interface TagJudgeRunOptions {
    cwd: string;
    provider?: ProviderType;
    resolvedProvider?: ProviderType;
    resolvedModel?: string;
    language?: Language;
    onStream?: StreamCallback;
    stepName: string;
}
export declare function runTagJudgeStage(tagInstruction: string, rules: WorkflowRule[], interactiveEnabled: boolean, runOptions: TagJudgeRunOptions, onJudgeStage?: JudgeStatusOptions['onJudgeStage']): Promise<JudgeStatusResult | undefined>;
export interface JudgeStatusResult {
    ruleIndex: number;
    method: RuleMatchMethod;
}
export interface EvaluateConditionOptions {
    cwd: string;
    provider?: ProviderType;
    resolvedProvider?: ProviderType;
    resolvedModel?: string;
    onJudgeResponse?: (entry: {
        instruction: string;
        status: 'done' | 'error';
        response: string;
    }) => void;
}
export declare function evaluateCondition(agentOutput: string, conditions: Array<{
    index: number;
    text: string;
}>, options: EvaluateConditionOptions): Promise<number>;
export declare function judgeStatus(structuredInstruction: string, tagInstruction: string, rules: WorkflowRule[], options: JudgeStatusOptions): Promise<JudgeStatusResult>;
//# sourceMappingURL=judge-status-usecase.d.ts.map