import CreatorTools from "../app/CreatorTools";
import IPlayerTravelledEvent from "./IPlayerTravelledEvent";
import Location from "./Location";
import IItemInteractedEvent from "./IItemInteractedEvent";
import IBlockBrokenEvent from "./IBlockBrokenEvent";
export default class GameStateManager {
    _playerLocation: Location | undefined;
    _playerLocationHistory: Location[];
    _playerLocationHistoryTimes: Date[];
    _itemInteractedLocationHistory: Location[];
    _itemInteractedLocationHistoryTimes: Date[];
    _playerMajorLocationHistory: Location[];
    _playerMajorLocationHistoryTimes: Date[];
    curTick: number;
    pendingLocationChangeProcess: number;
    _lastPlayerTravelledMessage: IPlayerTravelledEvent | undefined;
    _eventsSeen: {
        [name: string]: boolean;
    };
    private _onPlayerTravelled;
    private _onItemInteracted;
    private _onBlockBroken;
    private _onPlayerMajorTravelled;
    get playerMajorLocationHistory(): Location[];
    get playerLocationHistory(): Location[];
    get itemInteractedHistory(): Location[];
    get playerLocation(): Location;
    get onPlayerTravelled(): import("ste-events").IEvent<GameStateManager, IPlayerTravelledEvent>;
    get onPlayerMajorTravelled(): import("ste-events").IEvent<GameStateManager, IPlayerTravelledEvent>;
    get onItemInteracted(): import("ste-events").IEvent<GameStateManager, IItemInteractedEvent>;
    get onBlockBroken(): import("ste-events").IEvent<GameStateManager, IBlockBrokenEvent>;
    constructor(creatorTools: CreatorTools);
    _tick(): void;
    handleEvent(message: any): void;
}
