/** * Monitor plugin state. * This represents the current state of the monitor system. */ import "@bluecadet/launchpad-utils/types"; export type MonitorAppStatus = "online" | "offline" | "errored"; type AppState = { status: MonitorAppStatus; pid?: number; pm2Id?: number; lastStart?: Date; lastStop?: Date; lastError?: Date; }; export type MonitorState = { /** Whether connected to PM2 daemon */ isConnected: boolean; /** Whether currently shutting down */ isShuttingDown: boolean; /** Timestamp of last connect */ lastConnect?: Date; /** Timestamp of last disconnect */ lastDisconnect?: Date; /** Configured apps */ apps: { [appName: string]: AppState; }; }; declare module "@bluecadet/launchpad-utils/types" { interface PluginsState { monitor: MonitorState; } } export declare class MonitorStateManager { private readonly updateState; constructor(updateState: (producer: (draft: MonitorState) => void) => void); setConnected(isConnected: boolean): void; setShuttingDown(isShuttingDown: boolean): void; initializeApp(appName: string): void; updateAppStatus(appName: string, status: Partial): void; markAppStarted(appName: string, pid?: number, pm2Id?: number): void; markAppStopped(appName: string): void; markAppErrored(appName: string): void; } export {}; //# sourceMappingURL=monitor-state.d.ts.map