import { Board } from "./board";
import { SocketMessage } from "./network";
import { Camera } from "./camera";
import { Timer } from "./timer";
export declare abstract class GameStep {
    abstract name: string;
    private _board;
    private _camera;
    private _timers;
    constructor(board: Board);
    get board(): Board;
    onNetworkMessage(msg: SocketMessage): void;
    onPlayerJoin(msg: SocketMessage): void;
    onPlayerLeave(msg: SocketMessage): void;
    onConnectionClosed(): void;
    abstract onEnter(data: any): void;
    abstract onLeave(): void;
    /**
     * Game update loop
     */
    update(delta: number): void;
    checkCollisions(): void;
    /**
     * Game draw loop
     */
    draw(): void;
    get camera(): Camera;
    set camera(value: Camera);
    addTimer(time: number, end: () => void, repeat?: boolean): Timer;
    removeTimer(timer: Timer): void;
}
