UNPKG

simscript

Version:

A Discrete Event Simulation Library in TypeScript

102 lines (101 loc) 3.29 kB
import { Entity } from './entity'; import { RandomVar } from './random'; import { Queue } from './queue'; import { Event, EventArgs } from './event'; export declare enum SimulationState { Paused = 0, Finished = 1, Running = 2 } export declare class Simulation { _fec: FecItem[]; private _name; private _timeUnit; private _tmNow; private _tmEnd; private _tmMaxStep; private _frameDelay; private _tmStart; private _tmElapsed; private _state; private _queues; private _lastYield; private _lastFrame; private _yieldInterval; constructor(options?: any); get name(): string; set name(value: string); get timeUnit(): string; set timeUnit(value: string); get state(): SimulationState; get timeEnd(): number | null; set timeEnd(value: number | null); get maxTimeStep(): number | null; set maxTimeStep(value: number | null); get frameDelay(): number | null; set frameDelay(value: number | null); get timeElapsed(): number; get timeNow(): number; get yieldInterval(): number; set yieldInterval(value: number); start(reset?: boolean): Promise<void>; stop(reset?: boolean): void; activate(e: Entity): Promise<number>; generateEntities(entityType: any, interArrival?: RandomVar | number, max?: number, startTime?: number, endTime?: number): void; get queues(): Queue[]; getStatsTable(showNetValues?: boolean): string; readonly starting: Event<Simulation, EventArgs>; onStarting(e?: EventArgs): void; readonly started: Event<Simulation, EventArgs>; onStarted(e?: EventArgs): void; readonly finishing: Event<Simulation, EventArgs>; onFinishing(e?: EventArgs): void; readonly finished: Event<Simulation, EventArgs>; onFinished(e?: EventArgs): void; readonly stateChanging: Event<Simulation, EventArgs>; onStateChanging(e?: EventArgs): void; readonly stateChanged: Event<Simulation, EventArgs>; onStateChanged(e?: EventArgs): void; readonly timeNowChanging: Event<Simulation, EventArgs>; onTimeNowChanging(e?: EventArgs): void; readonly timeNowChanged: Event<Simulation, EventArgs>; onTimeNowChanged(e?: EventArgs): void; protected _setState(value: SimulationState): void; protected _setTimeNow(value: number): void; protected _reset(): void; private _step; private _scanFec; private _createSimulationReport; private _createQueueReport; } export interface IFecItemOptions { delay?: number; path?: IMovePath; queue?: Queue; units?: number; signal?: any; ready?: boolean; } export declare class FecItem { private _e; private _ready; private _tmStart; private _tmDue; private _promise; private _resolve; private _options; constructor(e: Entity, options: IFecItemOptions); get e(): Entity; get options(): IFecItemOptions; get ready(): boolean; set ready(value: boolean); get timeStart(): number; get timeDue(): number; dispatch(): Promise<any>; get promise(): Promise<number>; } export interface IMovePath { queues: Queue[]; tension?: number; radius?: number; }