/** Default timeout (ms) when no turn/scenario/CLI value is given - matches `newo sandbox`. */ export declare const DEFAULT_TIMEOUT_MS = 60000; /** One turn's assertion set, normalized: string-or-list inputs become string arrays. */ export interface TurnExpectation { contains?: string[]; notContains?: string[]; regex?: string; } /** One scripted user turn in a scenario's shared conversation. */ export interface ScenarioTurn { message: string; timeoutSeconds?: number; expect: TurnExpectation; } /** A parsed, fully-validated scenario file. */ export interface Scenario { name?: string; connectorIdn?: string; integrationIdn?: string; timeoutSeconds?: number; turns: ScenarioTurn[]; } /** Turn outcome status, mirrored in `--json` output. */ export type TurnStatus = 'pass' | 'fail' | 'timeout' | 'skipped'; /** Per-turn result, produced by the runner (st-02) - the shape lives here since it's a feature type. */ export interface TurnResult { index: number; status: TurnStatus; failures?: string[]; response?: string; elapsedMs?: number; reason?: string; } /** The result of running one assertion set against a turn's reply text. */ export interface AssertionResult { passed: boolean; failures: string[]; } /** Error thrown by `parseScenario` - message already carries the file path and offending field. */ export declare class ScenarioValidationError extends Error { } /** * Parse and fully validate a scenario YAML file's content. Pure - takes the already-read * file text and its path (for error messages only, never read from disk here). * * Throws `ScenarioValidationError` with a descriptive, path-bearing message on any * malformed YAML or schema violation (unknown keys, missing/empty turns, missing * message/expect, non-compiling regex, non-finite/non-positive timeouts). */ export declare function parseScenario(content: string, scenarioPath: string): Scenario; /** * Assert one turn's expectation set against the agent's reply text (all agent acts' * `source_text` joined with `\n`, per the design's reply-text contract). AND semantics * across `contains` / `not_contains` / `regex`; matching is case-sensitive. */ export declare function assertTurn(expect: TurnExpectation, response: string): AssertionResult; /** * Resolve the effective per-turn timeout in milliseconds. Precedence (highest first): * turn-level YAML `timeout` > scenario-level YAML `timeout` > CLI `--timeout` > 60s default. * All seconds inputs are converted to ms; `undefined` at any level falls through to the next. */ export declare function resolveTimeoutMs(turnTimeoutSeconds: number | undefined, scenarioTimeoutSeconds: number | undefined, cliTimeoutSeconds: number | undefined): number; //# sourceMappingURL=scenario.d.ts.map