/** * 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