/** * Human-readable output of the `cadre-host join` and `cadre-host node` commands: * the claim payload as a terminal QR code and as text, the warning when the node * is not reachable from outside, the claimed line, the outcome of a join by * invitation, and the node list. * * The types are loose mirrors of `ClaimDetails` and `HostedNodeView` * (`../hosted/`): the body arrives over HTTP from whichever cadre-host version is * running, so every field is optional and a missing one prints as `?`. * * Streams: the payload text goes to stdout ALONE, so `cadre-host join --no-qr` * can be piped or copied; everything else (the QR, the instructions, the * warning, the claimed line) goes to stderr. The payload carries the claim * secret by design; nothing else printed here contains it. */ export interface ClaimDetailsLike { payload?: string; peerId?: string; multiaddrs?: string[]; reachability?: { verdict?: string; reason?: string | null; } | null; } export interface HostedNodeLike { id?: string; join?: { kind?: string; }; status?: string; partyId?: string; ownerKey?: string; memberPeerId?: string; connected?: boolean; error?: string; retryable?: boolean; } /** Print the QR code (unless `qr` is false) and the instructions on stderr, then the payload text on stdout. */ export declare function printClaimPayload(details: ClaimDetailsLike, opts: { qr: boolean; }): void; /** * One line on stderr when the NAT layer says the node cannot be reached from * outside: the claim still works from the home network over the LAN address. */ export declare function printReachabilityWarning(details: ClaimDetailsLike): void; /** The line printed once the watcher reports the claim. */ export declare function printClaimed(node: HostedNodeLike): void; /** * How a join by invitation ended: the member that admitted the node, or the failure. A * retryable failure means no member could be reached, which is the usual case for a cadre's * first always-on node: its only members are phones, which nothing can dial. */ export declare function printInvitationOutcome(node: HostedNodeLike): void; /** One line per hosted node: id, status, party, owner fingerprint, connected. */ export declare function printNodeList(nodes: HostedNodeLike[]): void;