/** * Enumerate LAN IPv4 addresses suitable for pairing display. * Skips internal/loopback (127.*) and unconfigured link-local (169.254.*) interfaces. * Tailscale (100.64/10) and VPN addresses are kept — they are valid direct-connect targets. */ export declare function getLanIPv4Addresses(): string[]; /** * Build the `catui://connect` deep link consumed by the mobile app (scan-to-pair). * `altEndpoints` carries the remaining LAN addresses; the app tries the primary * first and falls back through the alternates when the host has multiple NICs * (physical LAN + VMware/WSL virtual switches). */ export declare function buildConnectDeepLink(wsEndpoint: string, token: string, hostname: string, altEndpoints?: string[]): string; /** Render a terminal QR code for the given payload. */ export declare function renderQr(payload: string): Promise; export interface ConnectionBannerInput { hostname: string; port: number; token: string; /** LAN (or Tailscale/VPN) IPv4 addresses to advertise. */ addresses: string[]; /** cloudflared quick tunnel hostname (e.g. "abc-def.trycloudflare.com") when enabled. */ tunnelHostname?: string; } /** Format the serve-mode startup banner (URLs + token + QR + security hints). */ export declare function formatConnectionBanner(input: ConnectionBannerInput): string;