import type { AnalyticsContext } from "@vertigis/viewer-spec/analytics/AnalyticsContext"; import type { MessageBus as BaseMessageBus } from "@vertigis/viewer-spec/messaging/MessageBus"; import type { MessagesConfig } from "../config"; import type { Events, Operations, Commands } from "../messaging"; import type { Service } from "../services"; /** * Provides access to VertiGIS Studio Web commands, events, and operations. */ export interface MessageBus extends BaseMessageBus, Service { /** * Well-known VertiGIS Studio Web commands. */ readonly commands: Commands; /** * Well-known VertiGIS Studio Web events. */ readonly events: Events; /** * Well-known VertiGIS Studio Web operations. */ readonly operations: Operations; /** * Loads configuration for one or more messages. */ loadConfig(config: MessagesConfig): void; /** * Gets information that can be useful for reporting actions this component * performs to VertiGIS Studio Analytics. */ getAnalyticsContext?: () => AnalyticsContext; }