export declare type StateTransitionFunction<EState, TArgs> = (args: TArgs) => EState | null;
export declare type TransitionMap<EState, TArgs> = Map<EState, StateTransitionFunction<EState, TArgs>>;
declare class StateMachine<EState, TArgs> {
    private currentState;
    private readonly transitionMap;
    get current(): EState;
    constructor(initialState: EState, transitionMap: TransitionMap<EState, TArgs>);
    update(args: TArgs): void;
}
export default StateMachine;
