import { Core } from './Core'; declare abstract class GameState { private transitionInfo; /** * A game state. User logic should be implemented * in a class that inherits from GameState. * * @return New GameState object */ constructor(); /** * Set the next state for transitioning. * * @param next GameState after transitioning * @param kill Should the current state be killed? */ setNext(next?: GameState | null, kill?: boolean): void; /** * Get the next state for a transition * * @returns Next state */ getTransitionInfo(): { /** * Next state */ next: GameState | null; /** * Kill the previous state */ kill: boolean; /** * Transitioning? */ transition: boolean; }; /** * Load the state. This can be overriden. * This is called only once in its lifetime. * * @param core Core modules passed by Engine */ abstract onEntry(core: Core): void; /** * Exit the state. This can be overriden. * This is called only once in its lifetime. * * @param core Core modules passed by Engine */ abstract onExit(core: Core): void; /** * Update the state at every frame. This can be overriden. * This is called throughout its lifetime. * * @param core Core modules passed by Engine */ abstract update(core: Core): void; } export { GameState };