export interface OpenCodeProcessInfo { pid: number; command: string; } type ProcessAliveChecker = (pid: number) => Promise; type ProcessListProvider = () => Promise; type PortProbe = (host: string, port: number, timeoutMs: number) => Promise; export interface PortProbeResult { isOpen: boolean; reason: string; } export interface ProcessGuardOptions { pidFilePath: string; host: string; port: number; timeoutMs?: number; processKeywords?: string[]; processAliveChecker?: ProcessAliveChecker; processListProvider?: ProcessListProvider; portProbe?: PortProbe; } export type ProcessGuardStatus = 'ok' | 'not-running' | 'single-instance-violation'; export interface ProcessGuardResult { status: ProcessGuardStatus; pidFromFile: number | null; pidAlive: boolean; portOpen: boolean; probeReason: string; runningPids: number[]; conflictPids: number[]; } export interface RescueLockOptions { lockTargetPath: string; staleMs?: number; updateMs?: number; now?: () => number; } export interface RescueLockBusyResult { ok: false; code: 'lock-busy'; lockPath: string; } export interface RescueLockSuccessResult { ok: true; lockPath: string; release: () => Promise; } export type RescueLockAcquireResult = RescueLockBusyResult | RescueLockSuccessResult; export declare function checkOpenCodeSingleInstance(options: ProcessGuardOptions): Promise; export declare function acquireRescueLock(options: RescueLockOptions): Promise; export declare function probeTcpPort(host: string, port: number, timeoutMs?: number): Promise; export {}; //# sourceMappingURL=process-guard.d.ts.map