/**
 * Mock scenario support for integration testing.
 *
 * Provides a queue-based mechanism to control mock provider responses
 * per agent or by call order. Scenarios can be loaded from JSON files
 * (via TAKT_MOCK_SCENARIO env var) or set programmatically in tests.
 */
import type { ScenarioEntry } from './types.js';
export type { ScenarioEntry };
/**
 * Queue that dispenses scenario entries.
 *
 * Matching rules:
 * 1. If an entry has `agent` set, it only matches calls for that agent name.
 * 2. Entries without `agent` match any call (consumed in order).
 * 3. First matching entry is removed from the queue and returned.
 * 4. Returns undefined when no matching entry remains.
 */
export declare class ScenarioQueue {
    private entries;
    constructor(entries: ScenarioEntry[]);
    /**
     * Consume the next matching entry for the given agent.
     */
    consume(personaName: string): ScenarioEntry | undefined;
    /** Number of remaining entries */
    get remaining(): number;
}
/**
 * Set mock scenario programmatically (for tests).
 * Pass null to clear.
 */
export declare function setMockScenario(entries: ScenarioEntry[] | null): void;
/**
 * Get the current global scenario queue.
 * Lazily loads from TAKT_MOCK_SCENARIO env var on first access.
 */
export declare function getScenarioQueue(): ScenarioQueue | null;
/**
 * Reset global scenario state (for test cleanup).
 */
export declare function resetScenario(): void;
/**
 * Load and validate a scenario JSON file.
 *
 * @param filePath Absolute or relative path to scenario JSON
 * @throws Error if file not found or JSON invalid
 */
export declare function loadScenarioFile(filePath: string): ScenarioEntry[];
//# sourceMappingURL=scenario.d.ts.map