/** * Server Manager * * Manages server plugin states, scanning, and comparison * between production and test environments. */ import { EventEmitter } from 'node:events'; import { type ScanProgress, type ScanProgressCallback, type ScannedPlugin, type ServerPluginState, ServerType, type VersionDifference } from './types/index.js'; /** * Server Manager events */ export interface ServerManagerEvents { scanStart: [serverType: ServerType]; scanProgress: [serverType: ServerType, progress: ScanProgress]; scanComplete: [serverType: ServerType, state: ServerPluginState]; scanError: [serverType: ServerType, error: Error]; } export declare class ServerManager extends EventEmitter { private productionPath; private testPath; private dataDir; private productionState; private testState; constructor(productionPath: string, testPath: string, dataDir?: string); getPluginsPath(serverType: ServerType): string; private getStatePath; scan(serverType: ServerType, onProgress?: ScanProgressCallback): Promise; scanBoth(onProgress?: (serverType: ServerType, progress: ScanProgress) => void): Promise<{ production: ServerPluginState; test: ServerPluginState; }>; private saveState; loadState(serverType: ServerType): Promise; getState(serverType: ServerType): ServerPluginState | null; get production(): ServerPluginState | null; get test(): ServerPluginState | null; findPlugin(serverType: ServerType, name: string): ScannedPlugin | undefined; getPluginVersion(serverType: ServerType, name: string): string | null; hasPlugin(serverType: ServerType, name: string): boolean; compareServers(): VersionDifference[]; getProductionOnlyPlugins(): ScannedPlugin[]; getTestOnlyPlugins(): ScannedPlugin[]; getVersionMismatches(): Array<{ name: string; production: string; test: string; productionNewer: boolean; }>; getSummary(): { production: { count: number; valid: boolean; }; test: { count: number; valid: boolean; }; differences: number; productionOnly: number; testOnly: number; }; static create(productionPath: string, testPath: string, dataDir?: string, loadCached?: boolean): Promise; } //# sourceMappingURL=server-manager.d.ts.map