import { ServiceContainer } from "./container"; import { Option } from "../../types/config/options"; // Core Service Implementations import { OptionManager } from "../managers/option-manager"; import { HttpClient } from "../transport/http-client"; import { Logger } from "../shared/logger"; import { AuthManager } from "../managers/auth-manager"; import { WebSocketClient } from "../connections/websocket-client"; import { SocketChannelManager, RestChannelManager } from "../managers/channel-manager"; import { RestQueueManager } from "../managers/queue-manager"; import { Connection } from "../connections/connection"; // Service Interfaces import { IOptionManager, IAuthManager, ISocketChannelManager, } from "../../types/services/managers"; import { IHttpClient, ILogger, ILoggerFactory, IWebSocketClient, } from "../../types/services/clients"; import { IConnection } from "../../types/services/connection"; /** * Logger factory implementation for creating component-specific loggers */ class LoggerFactory implements ILoggerFactory { constructor( private instanceId: string, private optionManager: IOptionManager ) {} createLogger(component: string): ILogger { return new Logger(this.instanceId, component, this.optionManager); } } /** * Register all services for Socket-based instances */ export function registerSocketServices( container: ServiceContainer, instanceId: string, options: Partial