import { promptYesNo } from "../cli/prompt.js"; import { runExec } from "../process/exec.js"; import { type RuntimeEnv } from "../runtime.js"; /** * Locate Tailscale binary using multiple strategies: * 1. PATH lookup (via which command) * 2. Known macOS app path * 3. find /Applications for Tailscale.app * 4. locate database (if available) * * @returns Path to Tailscale binary or null if not found */ export declare function findTailscaleBinary(): Promise; export declare function getTailnetHostname(exec?: typeof runExec, detectedBinary?: string): Promise; export declare function getTestTailscaleBinaryOverride(env?: NodeJS.ProcessEnv): string | null; export declare function ensureGoInstalled(exec?: typeof runExec, prompt?: typeof promptYesNo, runtime?: RuntimeEnv): Promise; export declare function ensureTailscaledInstalled(exec?: typeof runExec, prompt?: typeof promptYesNo, runtime?: RuntimeEnv): Promise; export type TailscaleWhoisIdentity = { login: string; name?: string; }; export declare function ensureFunnel(port: number, exec?: typeof runExec, runtime?: RuntimeEnv, prompt?: typeof promptYesNo): Promise; export declare function enableTailscaleServe(port: number, exec?: typeof runExec): Promise; export declare function disableTailscaleServe(exec?: typeof runExec): Promise; export declare function enableTailscaleFunnel(port: number, exec?: typeof runExec): Promise; export declare function disableTailscaleFunnel(exec?: typeof runExec): Promise; export declare function readTailscaleWhoisIdentity(ip: string, exec?: typeof runExec, opts?: { timeoutMs?: number; cacheTtlMs?: number; errorTtlMs?: number; }): Promise;