import type { CameraUiCLI } from './cameraui.js';
export declare class ServerManager {
    serverCrashed: boolean;
    private readonly SERVER_DIR;
    private readonly serverBinName;
    private readonly binDir;
    private readonly cliDirectory;
    private cli;
    private forkedProcess?;
    private onCloseHandler?;
    private updating;
    constructor(cli: CameraUiCLI);
    get isRunning(): boolean;
    private get serverPath();
    private get serverStatePath();
    private get serverModulesPath();
    private get serverBinPath();
    private get serverPackageJsonPath();
    private isServerHealthy;
    ensureInstalled(): Promise<void>;
    start(onClose: (code: number | null, signal: NodeJS.Signals | null) => void): Promise<void>;
    stop(): Promise<void>;
    private reset;
    update(version?: string, stdout?: boolean): Promise<void>;
    private handleServerMessage;
    private npmInstall;
    private npmInstallWithRetry;
    private runNpmInstall;
    private send;
    private readState;
    private writeState;
}
