export enum NDKKind {
    Metadata = 0,
    Text = 1,
    RecommendRelay = 2,
    Contacts = 3,
    EncryptedDirectMessage = 4,
    EventDeletion = 5,
    Repost = 6,
    Reaction = 7,
    BadgeAward = 8,

    // NIP-29
    GroupChat = 9,
    Thread = 11,
    GroupReply = 12,
    GiftWrapSeal = 13,
    // Gift Wrapped Rumors
    PrivateDirectMessage = 14,

    Image = 20,
    Video = 21,
    ShortVideo = 22,
    Story = 23,

    // NIP-62
    Vanish = 62,

    // NIP-60 backup
    CashuWalletBackup = 375,

    // Nip 59 : Gift Wrap
    GiftWrap = 1059,

    GenericRepost = 16,
    ChannelCreation = 40,
    ChannelMetadata = 41,
    ChannelMessage = 42,
    ChannelHideMessage = 43,
    ChannelMuteUser = 44,

    WikiMergeRequest = 818,

    GenericReply = 1111,

    Media = 1063,

    // NIP-A0: Voice Messages
    VoiceMessage = 1222,
    VoiceReply = 1244,

    DraftCheckpoint = 1234,

    Task = 1934,
    Report = 1984,
    Label = 1985,

    // NIP-90: Data Vending Machines
    // Text: 5000-5099
    DVMReqTextExtraction = 5000,
    DVMReqTextSummarization = 5001,
    DVMReqTextTranslation = 5002,
    DVMReqTextGeneration = 5050,

    // Image: 5100-5199
    DVMReqImageGeneration = 5100,

    // Text-to-Speech: 5200-5299
    DVMReqTextToSpeech = 5250,

    // Discovery
    DVMReqDiscoveryNostrContent = 5300,
    DVMReqDiscoveryNostrPeople = 5301,

    // Event Timestamping
    DVMReqTimestamping = 5900,

    DVMEventSchedule = 5905,

    // Feedback
    DVMJobFeedback = 7000,

    // Recurring payments
    Subscribe = 7001,
    Unsubscribe = 7002,
    SubscriptionReceipt = 7003,

    // Cashu Wallet
    CashuReserve = 7373,
    CashuQuote = 7374,
    CashuToken = 7375,
    CashuWalletTx = 7376,

    // NIP-29
    GroupAdminAddUser = 9000,
    GroupAdminRemoveUser = 9001,
    GroupAdminEditMetadata = 9002,
    GroupAdminEditStatus = 9006,
    GroupAdminCreateGroup = 9007,
    GroupAdminRequestJoin = 9021,

    // Lists and Sets
    MuteList = 10000,
    PinList = 10001,
    RelayList = 10002,
    BookmarkList = 10003,
    CommunityList = 10004,
    PublicChatList = 10005,
    BlockRelayList = 10006,
    SearchRelayList = 10007,
    SimpleGroupList = 10009,
    RelayFeedList = 10012,
    InterestList = 10015,
    CashuMintList = 10019,
    EmojiList = 10030,
    DirectMessageReceiveRelayList = 10050,

    BlossomList = 10063,

    NostrWaletConnectInfo = 13194,

    TierList = 17000,

    // NIP-60
    CashuWallet = 17375,

    FollowSet = 30000,
    CategorizedPeopleList = NDKKind.FollowSet, // Deprecated but left for backwards compatibility
    CategorizedBookmarkList = 30001, // Deprecated but left for backwards compatibility
    RelaySet = 30002,
    CategorizedRelayList = NDKKind.RelaySet, // Deprecated but left for backwards compatibility
    BookmarkSet = 30003,

    /**
     * @deprecated Use ArticleCurationSet instead
     */
    CurationSet = 30004, // Deprecated but left for backwards compatibility
    ArticleCurationSet = 30004,
    VideoCurationSet = 30005,
    ImageCurationSet = 30006,
    InterestSet = 30015,
    InterestsList = NDKKind.InterestSet, // Deprecated but left for backwards compatibility
    ProjectTemplate = 30717,
    EmojiSet = 30030,
    ModularArticle = 30040,
    ModularArticleItem = 30041,
    Wiki = 30818,
    Draft = 31234,
    Project = 31933,
    SubscriptionTier = 37001,

    // NIP-87: Cashu & Fedimint Mints
    EcashMintRecommendation = 38000,
    CashuMintAnnouncement = 38172,
    FedimintMintAnnouncement = 38173,

    // NIP-69: P2P Order
    P2POrder = 38383,

    // NIP-C1: Collaborative Events
    CollaborativeEvent = 39382,

    HighlightSet = 39802,
    CategorizedHighlightList = NDKKind.HighlightSet, // Deprecated but left for backwards compatibility

    Nutzap = 9321,
    ZapRequest = 9734,
    Zap = 9735,
    Highlight = 9802,
    ClientAuth = 22242,

    NostrWalletConnectReq = 23194,
    NostrWalletConnectRes = 23195,

    NostrConnect = 24133,

    BlossomUpload = 24242,

    HttpAuth = 27235,

    ProfileBadge = 30008,
    BadgeDefinition = 30009,
    MarketStall = 30017,
    MarketProduct = 30018,
    Article = 30023,
    AppSpecificData = 30078,
    Classified = 30402,
    HorizontalVideo = 34235,
    VerticalVideo = 34236,

    GroupMetadata = 39000, // NIP-29
    GroupAdmins = 39001, // NIP-29
    GroupMembers = 39002, // NIP-29

    FollowPack = 39089,
    MediaFollowPack = 39092,

    // NIP-89: App Metadata
    AppRecommendation = 31989,
    AppHandler = 31990,
}

export const NDKListKinds = [
    NDKKind.MuteList,
    NDKKind.PinList,
    NDKKind.RelayList,
    NDKKind.BookmarkList,
    NDKKind.CommunityList,
    NDKKind.PublicChatList,
    NDKKind.BlockRelayList,
    NDKKind.SearchRelayList,
    NDKKind.RelayFeedList,
    NDKKind.InterestList,
    NDKKind.EmojiList,
    NDKKind.DirectMessageReceiveRelayList,
    NDKKind.FollowSet,
    NDKKind.BookmarkSet,
    NDKKind.CategorizedBookmarkList, // Backwards compatibility
    NDKKind.RelaySet,
    NDKKind.ArticleCurationSet,
    NDKKind.VideoCurationSet,
    NDKKind.InterestSet,
    NDKKind.EmojiSet,
    NDKKind.HighlightSet,
];
