import { StateConfiguration } from './state-configuration'; import { StateMachineInfo } from '../reflection/state-machine-info'; import { StateContext } from './state-context'; import { FiringMode } from '../firing-mode'; /** * Models behaviour as transitions between a finite set of states. * * @export * @class StateMachine * @template TState The type used to represent the states. * @template TTrigger The type used to represent the triggers that cause state transitions. * @link https://github.com/dotnet-state-machine/stateless/blob/dev/src/Stateless/StateMachine.cs */ export declare class StateMachine { private readonly _stateConfiguration; /** * Provides an info object which exposes the states, transitions, and actions of this machine. * * @param {string} stateType * @param {string} triggerType * @returns {StateMachineInfo} * @memberof StateMachine */ getInfo(stateType?: string, triggerType?: string): StateMachineInfo; private getRepresentation; /** * Begin configuration of the entry/exit actions and allowed transitions * when the state machine is in a particular state. * * @param {TState} state The state to configure. * @returns {StateConfiguration} >A configuration object through which the state can be configured. * @memberof StateMachine */ configure(state: TState): StateConfiguration; /** * Create state context. * * @param {TContext} context * @param {(TState | { accessor: (context: TContext) => TState; mutator: (context: TContext, state: TState) => any; })} initialState * @returns {StateContext} * @memberof StateMachine */ createStateContext(context: TContext, initialState: TState | { accessor: (context: TContext) => TState; mutator: (context: TContext, state: TState) => any; }, firingMode?: FiringMode): StateContext; } //# sourceMappingURL=state-machine.d.ts.map