import Player from "./Player"; export interface CommunicatorEvent { event: UnknownEvent; join: PlayerJoinEvent; login: PlayerLoginEvent; quit: PlayerQuitEvent; ready: GameReadyEvent; save: GameSaveEvent; autosaveOff: AutosaveOffEvent; autosaveOn: AutosaveOnEvent; close: GameCloseEvent; chat: PlayerChatEvent; } export declare enum EventType { /** * The event was not detected */ UnknownEvent = "event", /** * Called when the player has joined the game */ PlayerJoinEvent = "join", /** * Called when the player is joining the game */ PlayerLoginEvent = "login", /** * Called when a player has quit the game */ PlayerQuitEvent = "quit", /** * Called when the game fully loads and is joinable. */ GameReadyEvent = "ready", /** * Called when the game closes */ GameCloseEvent = "close", /** * Called when the game saves */ GameSaveEvent = "save", /** * Called when autosave is turned off */ AutosaveOffEvent = "autosaveOff", /** * Called when autosave is turned on */ AutosaveOnEvent = "autosaveOn", /** * Called when a player types in chat */ PlayerChatEvent = "chat" } export default abstract class Event { /** * The type of the event */ abstract readonly type: EventType; /** * The date when the event happened */ abstract readonly date: Date; } export declare class UnknownEvent extends Event { readonly date: Date; readonly type = EventType.UnknownEvent; constructor(date: Date); } export declare class PlayerJoinEvent extends Event { readonly date: Date; readonly type = EventType.PlayerJoinEvent; readonly player: Player; constructor(date: Date, player: Player); } export declare class PlayerLoginEvent extends Event { readonly date: Date; readonly type = EventType.PlayerLoginEvent; readonly player: Player; constructor(date: Date, player: Player); } export declare class PlayerQuitEvent extends Event { readonly date: Date; readonly type = EventType.PlayerQuitEvent; readonly player: Player; readonly reason: string; constructor(date: Date, player: Player, reason: string); } export declare class GameReadyEvent extends Event { readonly date: Date; readonly type = EventType.GameReadyEvent; constructor(date: Date); } export declare class GameSaveEvent extends Event { readonly date: Date; readonly type = EventType.GameSaveEvent; constructor(date: Date); } export declare class AutosaveOnEvent extends Event { readonly date: Date; readonly type = EventType.AutosaveOnEvent; constructor(date: Date); } export declare class AutosaveOffEvent extends Event { readonly date: Date; readonly type = EventType.AutosaveOffEvent; constructor(date: Date); } export declare class GameCloseEvent extends Event { readonly date: Date; readonly type = EventType.GameCloseEvent; constructor(date: Date); } export declare class PlayerChatEvent extends Event { readonly date: Date; readonly type = EventType.PlayerChatEvent; readonly player: Player; readonly message: string; constructor(date: Date, player: Player, message: string); } //# sourceMappingURL=Event.d.ts.map