import { AsyncCommand } from './command/AsyncCommand'; import { Command } from './command/Command'; import { Scheduler } from '../arbitrary/AsyncSchedulerArbitrary'; /** * Synchronous definition of model and real * @public */ export declare type ModelRunSetup = () => { model: Model; real: Real; }; /** * Asynchronous definition of model and real * @public */ export declare type ModelRunAsyncSetup = () => Promise<{ model: Model; real: Real; }>; /** * Run synchronous commands over a `Model` and the `Real` system * * Throw in case of inconsistency * * @param s - Initial state provider * @param cmds - Synchronous commands to be executed * * @public */ export declare function modelRun(s: ModelRunSetup, cmds: Iterable>): void; /** * Run asynchronous commands over a `Model` and the `Real` system * * Throw in case of inconsistency * * @param s - Initial state provider * @param cmds - Asynchronous commands to be executed * * @public */ export declare function asyncModelRun(s: ModelRunSetup | ModelRunAsyncSetup, cmds: Iterable>): Promise; /** * Run asynchronous and scheduled commands over a `Model` and the `Real` system * * Throw in case of inconsistency * * @param scheduler - Scheduler * @param s - Initial state provider * @param cmds - Asynchronous commands to be executed * * @public */ export declare function scheduledModelRun(scheduler: Scheduler, s: ModelRunSetup | ModelRunAsyncSetup, cmds: Iterable>): Promise;