import { spawnSync as nodeSpawnSync } from 'node:child_process'; import { type RouteCodexHealthProbeResult } from '../../utils/http-health-probe.js'; export type PortUtilsSpinner = { start(text?: string): PortUtilsSpinner; succeed(text?: string): void; fail(text?: string): void; warn(text?: string): void; info(text?: string): void; stop(): void; text: string; }; export type PortUtilsLogger = { info: (msg: string) => void; success: (msg: string) => void; warning: (msg: string) => void; error: (msg: string) => void; }; export declare function killPidBestEffortImpl(args: { pid: number; force: boolean; isWindows: boolean; spawnSyncImpl?: typeof nodeSpawnSync; processKill?: typeof process.kill; }): void; export declare function findListeningPidsImpl(args: { port: number; isWindows?: boolean; routeCodexHomeDir?: string; processKill?: typeof process.kill; spawnSyncImpl?: typeof nodeSpawnSync; logger: PortUtilsLogger; }): number[]; export declare function probeServerHealthQuickImpl(args: { port: number; fetchImpl: typeof fetch; }): Promise; export declare function isServerHealthyQuickImpl(args: { port: number; fetchImpl: typeof fetch; }): Promise; export declare function ensurePortAvailableImpl(args: { port: number; parentSpinner: PortUtilsSpinner; opts?: { restart?: boolean; }; fetchImpl: typeof fetch; sleep: (ms: number) => Promise; env: NodeJS.ProcessEnv; logger: PortUtilsLogger; createSpinner: (text: string) => Promise; findListeningPids: (port: number) => number[]; killPidBestEffort: (pid: number, opts: { force: boolean; }) => void; isServerHealthyQuick: (port: number) => Promise; exit: (code: number) => never; }): Promise;