/// import Ember from 'ember'; import EmberObject from '@ember/object'; /** * Keeps track of the order of the steps in the step manager, as well as * the current step. * * @class StateMachine * @private * @hide */ export default abstract class StateMachine extends EmberObject { /** * @property {A} stepTransitions * @private */ stepTransitions: Ember.MutableArray; /** * @property {string} firstStep * @private */ firstStep: string; /** * @property {string} lastStep * @private */ lastStep: string; /** * @property {string} currentStep * @public */ currentStep: string; stepsToRemove: Ember.NativeArray; stepsToAdd: Ember.NativeArray; constructor(initialStep: string); addStep(this: StateMachine, name: string): void; removeStep(this: StateMachine, name: string): void; updateFirstCurrentAndLastSteps(this: StateMachine): void; abstract pickNext(currentStep?: string): string; abstract pickPrevious(currentStep?: string): string; activate(name: string): void; /** * @property {number} length * @public */ length: number; }