export type FriendRecord = { pubkey: string; userid?: string; address?: string; nospam?: number; name?: string; description?: string; status: "requested" | "offline" | "online"; remoteHost?: string; remotePort?: number; hello?: string; /** When we sent the outbound friend request (ms epoch). Set once, even * while status stays "requested", so UIs can show how long a request * has been pending. */ requestedAt?: number; acceptedAt?: number; /** Base58 DHT pubkey the friend last announced (native peers handshake * relays with this key, NOT their identity key). Persisted so a restart * can immediately park relay ROUTING_REQUESTs under the right key * instead of waiting for the friend's next DHT-PK announce. */ dhtPubkey?: string; /** Client metadata the friend advertised in its userinfo profile. Lets the * app negotiate capabilities (e.g. large-file transfer support) and show * the peer's platform/build. Undefined / protoVersion 0 for a legacy peer * that predates the userinfo extension. */ protoVersion?: number; platform?: string; osVersion?: string; appVersion?: string; };