export type StateMachineCb = (newState: T, oldState: T) => any; export declare class StateMachine { private _name; private _handlers; private _state; constructor(name: string); get state(): T; onChange(cb: StateMachineCb): () => void; onEnter(state: T, cb: StateMachineCb): () => void; onLeave(state: T, cb: StateMachineCb): () => void; transitionTo(newState: T): void; }