import { EventEmitter } from 'events'; import { GsiListener } from './GsiListener'; import { Logger } from '../utils/Logger'; import { EventMap } from '../constants/events'; export interface GsiServiceOptions { httpPort?: number; logger?: Logger | null; } /** * Main GSI service that coordinates all components for CS2 Game State Integration. * Handles HTTP listening, state management, and event emission. */ export declare class GsiService extends EventEmitter { private logger; private httpPort; readonly listener: GsiListener; private differManager; private updateHandler; /** * Creates a new GsiService instance. * @param {Object} options - Configuration options * @param {number} [options.httpPort=3000] - Port for HTTP GSI listener * @param {Logger} [options.logger] - Custom logger instance */ constructor({ httpPort, logger }?: GsiServiceOptions); /** * Starts the GSI service and begins listening for CS2 game state updates. */ start(): void; /** * Stops the GSI service and cleans up resources. */ stop(): void; /** * Registers a callback to be called for any emitted event. * Useful for debugging or logging all events. * @param {Function} callback - Callback function that receives (eventName, ...args) */ onAny(callback: (eventName: keyof EventMap, ...args: any[]) => any): void; /** * Creates an instance with logger injection. * @private * @param {Function} ClassRef - Class constructor to instantiate * @param {string} tag - Logger tag for the instance * @returns New instance with logger */ private createWithLogger; }