import { ServerStatus } from "./interfaces"; import { Unit } from "./unit/unit"; interface CustomEventMap { unitSelection: CustomEvent; unitDeselection: CustomEvent; unitsSelection: CustomEvent; unitsDeselection: CustomEvent; clearSelection: CustomEvent; unitDeath: CustomEvent; unitUpdated: CustomEvent; mapStateChanged: CustomEvent; mapContextMenu: CustomEvent; mapOptionChanged: CustomEvent; mapSourceChanged: CustomEvent; mapOptionsChanged: CustomEvent; // TODO not very clear, why the two options? configLoaded: CustomEvent; commandModeOptionsChanged: CustomEvent; contactsUpdated: CustomEvent; activeCoalitionChanged: CustomEvent; serverStatusUpdated: CustomEvent; } declare global { interface Document { addEventListener( type: K, listener: (this: Document, ev: CustomEventMap[K]) => void ): void; dispatchEvent(ev: CustomEventMap[K]): void; } //function getOlympusPlugin(): OlympusPlugin; } export {};