import { Event } from 'nostr-tools' export type TProfile = { username: string pubkey: string banner?: string avatar?: string nip05?: string about?: string created_at?: number } export type TRelayList = { write: string[] read: string[] } export type TRelayInfo = { supported_nips?: number[] software?: string } export type TWebMetadata = { title?: string | null description?: string | null image?: string | null } export type TRelaySet = { id: string name: string relayUrls: string[] } export type TConfig = { relayGroups: TRelaySet[] theme: TThemeSetting } export type TThemeSetting = 'light' | 'dark' | 'system' export type TTheme = 'light' | 'dark' export type TDraftEvent = Pick export type TNip07 = { getPublicKey: () => Promise signEvent: (draftEvent: TDraftEvent) => Promise } export interface ISigner { getPublicKey: () => Promise signEvent: (draftEvent: TDraftEvent) => Promise } export type TSignerType = 'nsec' | 'nip-07' | 'bunker' | 'browser-nsec' export type TAccount = { pubkey: string signerType: TSignerType nsec?: string bunker?: string bunkerClientSecretKey?: string } export type TAccountPointer = Pick export type TFeedType = 'following' | 'relays' | 'temporary' export type TLanguage = 'en' | 'zh' export type TImageInfo = { url: string; blurHash?: string; dim?: { width: number; height: number } }