import { runExec } from './exec.js';
export declare class TailscaleCliNotFoundError extends Error {
    constructor();
}
export declare function findTailscaleBinary(): Promise<string | null>;
export declare function getTestTailscaleBinaryOverride(env?: NodeJS.ProcessEnv): string | null;
export declare function requireTailscaleBinary(): Promise<string>;
export declare function getTailscaleBinary(): Promise<string>;
export declare function resetTailscaleBinaryCacheForTest(): void;
export declare function getTailnetIPv4Sync(): string | undefined;
export declare function getTailnetIPv4(): Promise<string | undefined>;
export declare function getTailnetHostname(exec?: typeof runExec): Promise<string>;
export declare function enableTailscaleServe(port: number, exec?: typeof runExec): Promise<void>;
export declare function disableTailscaleServe(exec?: typeof runExec): Promise<void>;
export declare function enableTailscaleFunnel(port: number, exec?: typeof runExec): Promise<void>;
export declare function disableTailscaleFunnel(exec?: typeof runExec): Promise<void>;
export type TailscaleWhoisIdentity = {
    login: string;
    name?: string;
};
export declare function readTailscaleWhoisIdentity(ip: string, exec?: typeof runExec, opts?: {
    timeoutMs?: number;
    cacheTtlMs?: number;
    errorTtlMs?: number;
}): Promise<TailscaleWhoisIdentity | null>;
export declare function isTailscaleInstalled(): Promise<boolean>;
