// A peer in the room, keyed by Trystero peer id. `self` marks our own entry. export type Peer = { id: string name: string self: boolean } // One line in the message log. export type LogEntry = { key: string time: number kind: 'system' | 'text' | 'binary' dir: 'in' | 'out' | 'sys' peerId?: string peerName?: string text?: string // binary-only fields fileName?: string size?: number sha256?: string // a received binary payload, kept so the user can download it blobUrl?: string } // Metadata that rides along with a binary transfer so the receiver knows what // it's getting (Trystero delivers this via the `metadata` send option). export type BinaryMeta = { transferId: string fileName: string mime: string size: number } // An in-flight (or completed) binary transfer, shown as a progress bar. export type Transfer = { id: string dir: 'in' | 'out' peerId: string peerName: string fileName: string size: number percent: number done: boolean }