/** * Panel Service * * Manages multiple server panel connections. * * @since v1.70.6 */ import { type IServerPanel, type PanelConfig, type PanelEventListener, type PanelEventType, type PanelServer, type PanelType } from './panel-types.js'; /** * Combined server info with panel reference */ export interface ManagedServer extends PanelServer { /** Panel name this server belongs to */ panelName: string; /** Panel type */ panelType: PanelType; } /** * Panel connection status */ export interface PanelStatus { /** Panel name */ name: string; /** Panel type */ type: PanelType; /** Whether connected */ connected: boolean; /** Last error message */ lastError?: string; /** Number of servers */ serverCount: number; } /** * Panel service for managing multiple panels */ export declare class PanelService { private panels; private serverCache; private eventListeners; /** * Register a panel configuration */ registerPanel(config: PanelConfig): IServerPanel; /** * Unregister a panel */ unregisterPanel(name: string): boolean; /** * Get a registered panel by name */ getPanel(name: string): IServerPanel | undefined; /** * Get all registered panels */ getAllPanels(): IServerPanel[]; /** * Get panel status for all registered panels */ getPanelStatuses(): PanelStatus[]; /** * Connect to a specific panel */ connectPanel(name: string): Promise; /** * Connect to all registered panels */ connectAll(): Promise>; /** * Disconnect from a specific panel */ disconnectPanel(name: string): Promise; /** * Disconnect from all panels */ disconnectAll(): Promise; /** * Refresh servers from a specific panel */ refreshServers(name: string): Promise; /** * Get all servers from all connected panels */ getAllServers(): Promise; /** * Get cached servers (no API calls) */ getCachedServers(): ManagedServer[]; /** * Find server by ID across all panels */ findServer(serverId: string): Promise; /** * Add event listener */ on(type: PanelEventType, listener: PanelEventListener): void; /** * Remove event listener */ off(type: PanelEventType, listener: PanelEventListener): void; /** * Resolve a panel by name and verify it is connected, or throw. */ private resolveConnectedPanel; /** * Create panel instance from config */ private createPanel; private emitEvent; } /** * Get the panel service singleton */ export declare function getPanelService(): PanelService; /** * Reset the panel service (for testing) */ export declare function resetPanelService(): void; //# sourceMappingURL=panel-service.d.ts.map