import type { TCloud } from '@tangle-network/tcloud';
import type { CollectedArtifacts, JudgeFn, Scenario, ScenarioResult } from './types';
export interface ExecutorConfig {
    /** System prompt for the agent under test */
    systemPrompt: string;
    /** Model to use for the agent */
    model?: string;
    /** Judges to run after execution */
    judges: JudgeFn[];
    /** Regex patterns for detecting tool/API calls in responses */
    toolCallPatterns?: RegExp[];
    /** Block delimiter pattern (default: :::type\n...\n:::) */
    blockPattern?: RegExp;
    /** Custom artifact checker for domain-specific checks */
    artifactChecker?: (check: Scenario['artifactChecks'][0], artifacts: CollectedArtifacts) => {
        passed: boolean;
        detail: string;
    } | null;
    /**
     * Sleep used between judge retries and after a judge succeeds. Defaults to
     * real `setTimeout`. Injectable so tests exercise the retry policy without
     * the real multi-second backoff.
     */
    sleep?: (ms: number) => Promise<void>;
}
/** Per-judge failure diagnostic, recorded additively on `ScenarioResult`. */
export interface JudgeFailure {
    judge: string;
    attempts: number;
    reason: string;
}
/**
 * Execute a scenario against an LLM via tcloud.
 *
 * Runs multi-turn conversation, extracts artifacts, runs judges.
 */
export declare function executeScenario(tc: TCloud, scenario: Scenario, config: ExecutorConfig): Promise<ScenarioResult>;
//# sourceMappingURL=executor.d.ts.map