import { TWrapper } from '../../Abstract'; import { FsmEventsStrategy, FsmType } from '../Constants'; import { TFsmEvents, TFsmStates } from '.'; import { BehaviorSubject, Observable } from 'rxjs'; import { TFsmMachine } from './TFsmMachine'; export type TFsmWrapper = TWrapper & Readonly<{ type: FsmType | string; changed$: Observable; send$: BehaviorSubject; strategy$: BehaviorSubject; getState: () => TFsmStates; getInitial: () => TFsmStates; getTransitions: () => ReadonlyArray; }>;