export interface PortHolder {
    pid: number;
    command: string;
    cwd: string | null;
}
export type PortDecision = {
    action: 'free';
} | {
    action: 'reclaim';
    holder: PortHolder;
    reason: string;
} | {
    action: 'refuse';
    holder: PortHolder;
    reason: string;
};
export declare function decidePortHolder(holder: PortHolder | null, worktreeRoot: string, livePids: ReadonlySet<number>): PortDecision;
export declare function isInside(child: string, root: string): boolean;
export declare function describePortHolder(port: number): PortHolder | null;
export declare function parseLsofCwd(out: string): string | null;
export declare function reclaimPort(port: number, holder: PortHolder, opts: {
    timeoutMs?: number;
    isPortFree: (port: number) => Promise<boolean>;
    kill?: (pid: number, signal: NodeJS.Signals) => void;
}): Promise<boolean>;
