export type CodeServerStatus = 'stopped' | 'starting' | 'running'; export interface CodeServerStartResult { status: 'starting' | 'running'; socket_path: string; } export interface CodeServerManager { start(): Promise; stop(): Promise; touch(): void; getStatus(): CodeServerStatus; shutdown(): Promise; onStatusChange(callback: (status: CodeServerStatus) => void): void; } export interface CodeServerManagerOptions { binPath: string; socketPath: string; idleTimeoutMs: number; userDataDir?: string; extensionsDir?: string; forceKillTimeoutMs?: number; } export declare const DEFAULT_CODE_SERVER_BIN = "/usr/local/bin/code-server"; export declare const DEFAULT_CODE_SERVER_SOCKET = "/run/generacy-control-plane/code-server.sock"; export declare const DEFAULT_IDLE_TIMEOUT_MS: number; export declare function loadOptionsFromEnv(env?: NodeJS.ProcessEnv): CodeServerManagerOptions; export declare class CodeServerProcessManager implements CodeServerManager { private readonly opts; private child; private status; private idleTimer; private exitWaiters; private statusChangeCallback; constructor(opts: CodeServerManagerOptions); onStatusChange(callback: (status: CodeServerStatus) => void): void; getStatus(): CodeServerStatus; start(): Promise; stop(): Promise; touch(): void; shutdown(): Promise; private clearIdleTimer; private ensureSocketDir; private removeStaleSocket; private waitForSocket; } export declare function getCodeServerManager(): CodeServerManager; export declare function setCodeServerManager(next: CodeServerManager | null): void; //# sourceMappingURL=code-server-manager.d.ts.map