export interface Settings { autoupdate: boolean; nsecbunker: boolean; media: boolean; hashtag: boolean; lowPower: boolean; translation: boolean; translateApiKey: string; instantZap: boolean; defaultZapAmount: number; } export interface Keys { npub: string; nsec: string; } export enum Kind { Metadata = 0, Text = 1, RecommendRelay = 2, Contacts = 3, Repost = 6, Reaction = 7, // NIP-89: App Metadata AppRecommendation = 31989, AppHandler = 31990, // #TODO: Add all nostr kinds } export interface Event { id: string; pubkey: string; created_at: number; kind: Kind; tags: string[][]; content: string; sig: string; } export interface EventWithReplies extends Event { replies: Array; } export interface Metadata { name?: string; display_name?: string; about?: string; website?: string; picture?: string; banner?: string; nip05?: string; lud06?: string; lud16?: string; } export interface Account { npub: string; contacts?: string[]; interests?: Interests; } export interface Interests { hashtags: string[]; users: string[]; words: string[]; } export interface RichContent { parsed: string; images: string[]; videos: string[]; links: string[]; notes: string[]; } export interface LumeColumn { id: number; title: string; content: string; } export interface Opengraph { url: string; title?: string; description?: string; image?: string; } export interface NostrBuildResponse { ok: boolean; data?: { message: string; status: string; data: Array<{ blurhash: string; dimensions: { width: number; height: number; }; mime: string; name: string; sha256: string; size: number; url: string; }>; }; } export interface NIP11 { name: string; description: string; pubkey: string; contact: string; supported_nips: number[]; software: string; version: string; limitation: { [key: string]: string | number | boolean; }; relay_countries: string[]; language_tags: string[]; tags: string[]; posting_policy: string; payments_url: string; icon: string[]; } export interface NIP05 { names: { [key: string]: string; }; nip46: { [key: string]: { [key: string]: string[]; }; }; }