/**
 * Test Scenario Runner
 *
 * Executes test scenarios for dev CLI testing.
 *
 * @since v1.41.4
 */
import type { ScenarioResult, ScenarioRunnerOptions, ScenarioSummary, StepResult, TestScenario, TestStep } from './types.js';
/**
 * Context for scenario execution
 */
export interface RunnerContext {
    /** Current UI state */
    state: Record<string, unknown>;
    /** Get current view */
    getView(): string;
    /** Get visible text */
    getVisibleText(): string;
    /** Check if error is displayed */
    hasError(): boolean;
    /** Get count of items by type */
    getCount(type: string): number;
    /** Execute a key input */
    sendKey(key: string): Promise<void>;
    /** Type text */
    typeText(text: string): Promise<void>;
    /** Execute an action */
    executeAction(action: string, params?: Record<string, unknown>): Promise<void>;
    /** Wait for a condition */
    waitFor(condition: () => boolean, timeout?: number): Promise<boolean>;
}
/**
 * Create a mock runner context for testing
 */
export declare function createMockContext(): RunnerContext;
/**
 * Execute a single test step
 */
export declare function executeStep(step: TestStep, context: RunnerContext, speedMultiplier?: number): Promise<StepResult>;
/**
 * Run a complete test scenario
 */
export declare function runScenario(scenario: TestScenario, context: RunnerContext, options?: ScenarioRunnerOptions): Promise<ScenarioResult>;
/**
 * Run multiple scenarios
 */
export declare function runScenarios(scenarios: TestScenario[], contextFactory: () => RunnerContext, options?: ScenarioRunnerOptions): Promise<ScenarioSummary>;
/**
 * Format scenario summary for display
 */
export declare function formatSummary(summary: ScenarioSummary): string;
/**
 * Format a single scenario result for display
 */
export declare function formatResult(result: ScenarioResult): string;
//# sourceMappingURL=runner.d.ts.map