/**
 * Port utilities for detecting process ownership
 */
export interface PortProcess {
    pid: number;
    processName: string;
    commandLine?: string;
}
/**
 * Get process information for a port
 * @param port Port number to check
 * @returns Process info or null if port is free
 */
export declare function getPortProcess(port: number): Promise<PortProcess | null>;
/**
 * Check if process is CLIProxy
 * Uses prefix matching to handle Linux kernel's 15-char process name truncation
 * (e.g., 'cli-proxy-api-plus' becomes 'cli-proxy-api-p' in lsof/ps output)
 */
export declare function isCLIProxyProcess(process: PortProcess | null): boolean;
/**
 * Windows firewall check result
 */
export interface FirewallCheckResult {
    checked: boolean;
    mayBlock: boolean;
    message: string;
    fixCommand?: string;
}
/**
 * Check if Windows Firewall might block a port
 * Returns immediately on non-Windows platforms
 */
export declare function checkWindowsFirewall(port: number): Promise<FirewallCheckResult>;
/**
 * Localhost binding test result
 */
export interface BindingTestResult {
    success: boolean;
    message: string;
}
/**
 * Wait for a port to become free (no process listening)
 * @param port Port number to wait for
 * @param timeoutMs Maximum time to wait in milliseconds (default: 5000)
 * @param pollIntervalMs Interval between checks in milliseconds (default: 200)
 * @returns True if port became free, false if timeout
 */
export declare function waitForPortFree(port: number, timeoutMs?: number, pollIntervalMs?: number): Promise<boolean>;
/**
 * Test if we can bind to localhost on a specific port
 * This verifies network stack is working and port is actually available
 */
export declare function testLocalhostBinding(port: number): Promise<BindingTestResult>;
//# sourceMappingURL=port-utils.d.ts.map