export interface RelaySet { read: string[] write: string[] } export type RelayMap = { [key: string]: { read: boolean write: boolean } } export interface RelayStats { relays: number pubKeys: number users: number trusted_users: number events: number posts: number zaps: number zap_amount: number daily: RelayDailyStats daily_totals: RelayDailyTotals relay_stats: RelayStats } export interface RelayStats { user_picks: RelayUserPicksStats written: RelayWrittenStats } export interface RelayWrittenStats { last_week: RelayLastWeekStats[] } export interface RelayLastWeekStats { d: string p: number ps: number e: number es: number } export interface RelayUserPicksStats { read_relays: RelayReadStats[] write_relays: RelayReadStats[] } export interface RelayReadStats { d: string r: number w: number rs: number ws: number } export interface RelayDailyTotals { datasets: RelayDailyTotalStatsDataset } export interface RelayDailyTotalStatsDataset { kind_0: RelayItemStats[] kind_1: RelayItemStats[] kind_2: RelayItemStats[] kind_3: RelayItemStats[] kind_5: RelayItemStats[] kind_6: RelayItemStats[] kind_7: RelayItemStats[] kind_1984: RelayItemStats[] kind_9735: RelayItemStats[] kind_1063: RelayItemStats[] kind_6969: RelayItemStats[] kind_9802: RelayItemStats[] kind_30000: RelayItemStats[] kind_30001: RelayItemStats[] kind_30008: RelayItemStats[] kind_30009: RelayItemStats[] kind_30017: RelayItemStats[] kind_30018: RelayItemStats[] kind_30023: RelayItemStats[] kind_31337: RelayItemStats[] totals: RelayItemStats[] new_profiles: RelayItemStats[] new_pubkeys: RelayItemStats[] new_contact_lists: RelayItemStats[] new_ln: RelayItemStats[] new_users: RelayItemStats[] total_zap_amount: RelayItemStats[] zappers: RelayItemStats[] zapped_pubkeys: RelayItemStats[] zapped_events: RelayItemStats[] zap_providers: RelayItemStats[] } export interface RelayDailyStats { datasets: RelayDailyStatsDataset } export interface RelayDailyStatsDataset { kind_0: RelayItemStats[] kind_1: RelayItemStats[] kind_2: RelayItemStats[] kind_3: RelayItemStats[] kind_5: RelayItemStats[] kind_6: RelayItemStats[] kind_7: RelayItemStats[] kind_1984: RelayItemStats[] kind_9735: RelayItemStats[] kind_1063: RelayItemStats[] kind_6969: RelayItemStats[] kind_9802: RelayItemStats[] kind_30000: RelayItemStats[] kind_30001: RelayItemStats[] kind_30008: RelayItemStats[] kind_30009: RelayItemStats[] kind_30017: RelayItemStats[] kind_30018: RelayItemStats[] kind_30023: RelayItemStats[] kind_31337: RelayItemStats[] totals: RelayItemStats[] new_profiles: RelayItemStats[] new_pubkeys: RelayItemStats[] new_contact_lists: RelayItemStats[] new_ln: RelayItemStats[] new_users: RelayItemStats[] max_zap_amount: RelayItemStats[] avg_zap_amount: RelayItemStats[] total_zap_amount: RelayItemStats[] active_pubkeys: RelayItemStats[] active_pubkeys_total: RelayItemStats[] active_pubkeys_week: RelayItemStats[] active_pubkeys_total_week: RelayItemStats[] active_relays: RelayItemStats[] zappers: RelayItemStats[] zapped_pubkeys: RelayItemStats[] zapped_events: RelayItemStats[] zap_providers: RelayItemStats[] retention: RelayRetentionStats } export interface RelayRetentionStats { all: RelayRetentionAll[] tr: RelayRetentionAll[] bio: RelayRetentionAll[] all_curves: RelayRetentionAllCurve[] tr_curves: RelayRetentionAllCurve[] bio_curves: RelayRetentionAllCurve[] } export interface RelayRetentionAllCurve { day: number '2023-02': number '2023-03': number '2023-04': number '2023-05': number '2023-06': number '2023-07': number } export interface RelayRetentionAll { d: string signups: number retained: number retd_posts: number retd_replies: number retd_reposts: number retd_likes: number retd_liked: number retd_liked_pubkeys: number retd_replied: number retd_replied_pubkeys: number retd_zaps_received: number retd_zaps_received_msats: number retd_zaps_sent: number retd_zaps_sent_msats: number retd_following: number retd_followers: number lost_posts: number lost_replies: number lost_reposts: number lost_likes: number lost_liked: number lost_liked_pubkeys: number lost_replied: number lost_replied_pubkeys: number lost_zaps_received: number lost_zaps_received_msats: number lost_zaps_sent: number lost_zaps_sent_msats: number lost_following: number lost_followers: number } export interface RelayItemStats { d: string // date c: number // count } export interface RelayFee { amount: number unit: string } export interface RelayInfo { name: string description: string pubkey: string contact: string supported_nips: number[] software: string version: string limitation?: { [key: string]: number | boolean } fees?: { [key: string]: RelayFee[] } } export interface RelayInfoObject { [key: string]: RelayInfo } export interface RelayInfoItem { uri: string info: RelayInfo } export enum RelayConnectionState { Connected = 'Connected', NotConnected = 'Failed to connect' } export interface RelayConnectionStatus { [key: string]: RelayConnectionState }