/** * EO-Map native embed public types. Pin https://eo-map.com/embed/v1.js * (or the moving /embed.js, which tracks the current v1 graph). * * import { EOMap } from 'https://eo-map.com/embed/v1.js'; */ export interface NativeEmbedLink { from: number; to: number; color?: string; } export interface NativeEmbedRouting { from: string | number; to: string | number; jumpRange?: number; routeLabels?: boolean; showRoutingCard?: boolean; routingCardMinimized?: boolean; routingCardWidth?: number; } export interface NativeEmbedOptions { system?: number; systems?: number[]; q?: string; zoom?: number; angle?: number; layout?: '2d' | '3d'; coloring?: 'security' | 'off'; color?: string; orbit?: boolean; performance?: boolean; details?: boolean; fit?: boolean; links?: string | NativeEmbedLink[]; labels?: Record; labelMode?: 'hover' | 'always' | 'off'; routing?: boolean | NativeEmbedRouting; from?: string | number; to?: string | number; jumpRange?: number; routeLabels?: boolean; mode?: string; } export type EOMapEventType = 'eo-ready' | 'eo-selected' | 'eo-error'; export type NativeFlashKind = 'kill' | 'capital' | 'positive' | 'accent' | 'neutral'; export interface EOMapHandle { readonly version: string; readonly element: EoMapElement; select(systemId: number, opts?: { zoom?: number; highlight?: boolean }): void; highlight(systems: number[]): void; /** * Optional `value` (alias `isk`) is ISK on kind=capital: finite, >=0, capped * at 1e12. Drives the Battle Replay shock-ring size. Omit for the default ring. */ flash(systemId: number, opts?: { kind?: NativeFlashKind | string; color?: string; value?: number; isk?: number }): void; focus(systemId: number, opts?: { zoom?: number; highlight?: boolean; flash?: NativeFlashKind | string }): void; setZoom(zoom: number): void; setAngle(angle: number): void; enterSolar(systemId: number): void; showUniverse(): void; on(type: EOMapEventType | (string & {}), listener: (event: CustomEvent) => void): void; off(type: EOMapEventType | (string & {}), listener: (event: CustomEvent) => void): void; destroy(): void; } export class EoMapElement extends HTMLElement { readonly version: string; setOptions(options: NativeEmbedOptions): void; select(systemId: number, opts?: { zoom?: number; highlight?: boolean }): void; highlight(systems: number[]): void; /** Same `value` / `isk` ISK field as EOMapHandle.flash for kind=capital. */ flash(systemId: number, opts?: { kind?: NativeFlashKind | string; color?: string; value?: number; isk?: number }): void; focusSystem(systemId: number, opts?: { zoom?: number; highlight?: boolean; flash?: NativeFlashKind | string }): void; setZoom(zoom: number): void; setAngle(angle: number): void; enterSolar(systemId: number): void; showUniverse(): void; destroy(): void; } export const EOMap: { version: string; tag: 'eo-map'; events: { ready: 'eo-ready'; selected: 'eo-selected'; error: 'eo-error' }; mount(el: Element, options?: NativeEmbedOptions): EOMapHandle; define(): void; }; export function mount(el: Element, options?: NativeEmbedOptions): EOMapHandle; export default EOMap; declare global { interface HTMLElementTagNameMap { 'eo-map': EoMapElement; } interface Window { EOMap?: typeof EOMap; } }