UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

1,111 lines 209 kB
import { PayloadAction } from "@reduxjs/toolkit"; import type { UnifiedAppNotification, NotificationTemplates } from "../../interfaces/models/AppNotification"; import type { ReplykeState } from '../replykeReducers'; export interface AppNotificationsState { notifications: UnifiedAppNotification[]; unreadCount: number; loading: boolean; hasMore: boolean; page: number; limit: number; notificationTemplates?: Partial<NotificationTemplates>; currentProjectId?: string; } export declare const appNotificationsSlice: import("@reduxjs/toolkit").Slice<AppNotificationsState, { setProjectContext: (state: { notifications: ({ type: "system"; action: string; metadata: { title?: string | undefined; content?: string | undefined; buttonData: { text: string; url: string; } | null; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-comment"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reply"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; replyId: string; replyContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-mention"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-mention"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-upvote"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-upvote"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; reactionType: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; reactionType: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction-milestone-specific"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; reactionType: string; milestoneCount: number; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction-milestone-total"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; milestoneCount: number; reactionCounts: { [x: string]: number; }; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction-milestone-specific"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; reactionType: string; milestoneCount: number; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction-milestone-total"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; milestoneCount: number; reactionCounts: { [x: string]: number; }; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "new-follow"; action: "open-profile"; metadata: { initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "connection-request"; action: "open-profile"; metadata: { connectionId: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "connection-accepted"; action: "open-profile"; metadata: { connectionId: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "space-membership-approved"; action: "open-space"; metadata: { spaceId: string; spaceName: string; spaceShortId: string; spaceSlug: string | null | undefined; spaceAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; })[]; unreadCount: number; loading: boolean; hasMore: boolean; page: number; limit: number; notificationTemplates?: { entityComment?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityCommentTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityCommentTemplateVars> | undefined; } | undefined; commentReply?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReplyTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReplyTemplateVars> | undefined; } | undefined; entityMention?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityMentionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityMentionTemplateVars> | undefined; } | undefined; commentMention?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentMentionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentMentionTemplateVars> | undefined; } | undefined; entityUpvote?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityUpvoteTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityUpvoteTemplateVars> | undefined; } | undefined; commentUpvote?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentUpvoteTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentUpvoteTemplateVars> | undefined; } | undefined; entityReaction?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionTemplateVars> | undefined; } | undefined; commentReaction?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionTemplateVars> | undefined; } | undefined; entityReactionMilestoneSpecific?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneSpecificTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneSpecificTemplateVars> | undefined; } | undefined; entityReactionMilestoneTotal?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneTotalTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneTotalTemplateVars> | undefined; } | undefined; commentReactionMilestoneSpecific?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneSpecificTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneSpecificTemplateVars> | undefined; } | undefined; commentReactionMilestoneTotal?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneTotalTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneTotalTemplateVars> | undefined; } | undefined; newFollow?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").NewFollowTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").NewFollowTemplateVars> | undefined; } | undefined; connectionRequest?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionRequestTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionRequestTemplateVars> | undefined; } | undefined; connectionAccepted?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionAcceptedTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionAcceptedTemplateVars> | undefined; } | undefined; spaceMembershipApproved?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").SpaceMembershipApprovedTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").SpaceMembershipApprovedTemplateVars> | undefined; } | undefined; } | undefined; currentProjectId?: string | undefined; }, action: PayloadAction<string>) => void; setLimit: (state: { notifications: ({ type: "system"; action: string; metadata: { title?: string | undefined; content?: string | undefined; buttonData: { text: string; url: string; } | null; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-comment"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reply"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; replyId: string; replyContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-mention"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-mention"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-upvote"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-upvote"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; reactionType: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; reactionType: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction-milestone-specific"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; reactionType: string; milestoneCount: number; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction-milestone-total"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; milestoneCount: number; reactionCounts: { [x: string]: number; }; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction-milestone-specific"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; reactionType: string; milestoneCount: number; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction-milestone-total"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; milestoneCount: number; reactionCounts: { [x: string]: number; }; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "new-follow"; action: "open-profile"; metadata: { initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "connection-request"; action: "open-profile"; metadata: { connectionId: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "connection-accepted"; action: "open-profile"; metadata: { connectionId: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "space-membership-approved"; action: "open-space"; metadata: { spaceId: string; spaceName: string; spaceShortId: string; spaceSlug: string | null | undefined; spaceAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; })[]; unreadCount: number; loading: boolean; hasMore: boolean; page: number; limit: number; notificationTemplates?: { entityComment?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityCommentTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityCommentTemplateVars> | undefined; } | undefined; commentReply?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReplyTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReplyTemplateVars> | undefined; } | undefined; entityMention?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityMentionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityMentionTemplateVars> | undefined; } | undefined; commentMention?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentMentionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentMentionTemplateVars> | undefined; } | undefined; entityUpvote?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityUpvoteTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityUpvoteTemplateVars> | undefined; } | undefined; commentUpvote?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentUpvoteTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentUpvoteTemplateVars> | undefined; } | undefined; entityReaction?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionTemplateVars> | undefined; } | undefined; commentReaction?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionTemplateVars> | undefined; } | undefined; entityReactionMilestoneSpecific?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneSpecificTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneSpecificTemplateVars> | undefined; } | undefined; entityReactionMilestoneTotal?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneTotalTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityReactionMilestoneTotalTemplateVars> | undefined; } | undefined; commentReactionMilestoneSpecific?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneSpecificTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneSpecificTemplateVars> | undefined; } | undefined; commentReactionMilestoneTotal?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneTotalTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").CommentReactionMilestoneTotalTemplateVars> | undefined; } | undefined; newFollow?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").NewFollowTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").NewFollowTemplateVars> | undefined; } | undefined; connectionRequest?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionRequestTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionRequestTemplateVars> | undefined; } | undefined; connectionAccepted?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionAcceptedTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").ConnectionAcceptedTemplateVars> | undefined; } | undefined; spaceMembershipApproved?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").SpaceMembershipApprovedTemplateVars> | undefined; content?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").SpaceMembershipApprovedTemplateVars> | undefined; } | undefined; } | undefined; currentProjectId?: string | undefined; }, action: PayloadAction<number>) => void; setNotificationTemplates: (state: { notifications: ({ type: "system"; action: string; metadata: { title?: string | undefined; content?: string | undefined; buttonData: { text: string; url: string; } | null; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-comment"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reply"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; replyId: string; replyContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-mention"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-mention"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-upvote"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-upvote"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; reactionType: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; reactionType: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction-milestone-specific"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; reactionType: string; milestoneCount: number; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "entity-reaction-milestone-total"; action: "open-entity"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; milestoneCount: number; reactionCounts: { [x: string]: number; }; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction-milestone-specific"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; reactionType: string; milestoneCount: number; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "comment-reaction-milestone-total"; action: "open-comment"; metadata: { entityId: string; entityShortId: string; entityTitle: string | null | undefined; entityContent: string | null | undefined; commentId: string; commentContent: string | null | undefined; milestoneCount: number; reactionCounts: { [x: string]: number; }; lastThreeUsers: { id: string; name: string | null | undefined; username: string | null | undefined; avatar: string | null | undefined; }[]; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "new-follow"; action: "open-profile"; metadata: { initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "connection-request"; action: "open-profile"; metadata: { connectionId: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "connection-accepted"; action: "open-profile"; metadata: { connectionId: string; initiatorId: string; initiatorName: string | null | undefined; initiatorUsername: string | null | undefined; initiatorAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; } | { type: "space-membership-approved"; action: "open-space"; metadata: { spaceId: string; spaceName: string; spaceShortId: string; spaceSlug: string | null | undefined; spaceAvatar: string | null | undefined; }; id: string; userId: string; isRead: boolean; createdAt: string; })[]; unreadCount: number; loading: boolean; hasMore: boolean; page: number; limit: number; notificationTemplates?: { entityComment?: { title?: import("../../interfaces/models/AppNotification").TemplateField<import("../../interfaces/models/AppNotification").EntityCommentTemplateVars> | undefined; content?: import("