/** * routes/tailscale.ts * * Handlers for the tailscale.* verbs over the remote-access tailscale module. * Detection is read-only; the serve action is the ONE state-changing tailscale * command, run only from this explicit user-initiated verb, recorded with an * honest receipt, and on success web.publicBaseUrl updates from the same * resolution (the https MagicDNS URL). */ import type { GatewayMethodCatalog } from '../method-catalog.js'; import { type TailscaleCommandRunner, type TailscaleServeReceiptStore } from '../../remote-access/tailscale.js'; export interface TailscaleGatewayDeps { /** Injectable command runner (tests never touch a real tailscale). */ readonly runner: TailscaleCommandRunner; readonly receipts: TailscaleServeReceiptStore; /** The daemon web port `tailscale serve` fronts. */ readonly resolveWebPort: () => number; /** Persist the https MagicDNS URL as web.publicBaseUrl on a successful serve. */ readonly setPublicBaseUrl: (url: string) => void; } /** * Attach the tailscale.* handlers to their cataloged descriptors. A missing * descriptor is a silent no-op (the operator-contract gates catch real drift). */ export declare function registerTailscaleGatewayMethods(catalog: GatewayMethodCatalog, deps: TailscaleGatewayDeps): void; //# sourceMappingURL=tailscale.d.ts.map