import { CommentLike, Like, Comment, ResolvedUserIdentity, ReactionType } from "../models";
import { Store } from "../stores/Store";
import { IdentityStore } from "./IdentityStore";
export interface ILikeService {
    socialReacts: (topicId: string, commentId: string, isReacts: boolean, reactionType: ReactionType) => Promise<void>;
    toggleLike: (...params: any[]) => Promise<void>;
}
export interface ICommentLikeService extends ILikeService {
    getCommentLike: (topicId: string) => Promise<CommentLike>;
    addComment: (comment: Comment) => Promise<Comment>;
    updateComment: (comment: Comment) => Promise<Comment>;
    deleteComment: (comment: Comment) => Promise<void>;
    markBestReply: (topicId: string, commentId: string) => Promise<void>;
}
export declare class CommentLikeStore extends Store {
    identityStore: IdentityStore;
    likes: import("../stores/Store").StoreState<{
        [topicId: string]: Like[];
    }>;
    comments: import("../stores/Store").StoreState<{
        [topicId: string]: Comment[];
    }>;
    getters: {
        likes: (topicId: string, commentId: string) => Like[];
        topComments: (topicId: string) => Comment[];
        repliedComments: (topicId: string, id: string) => Comment[];
        comment: (topicId: string, id: string) => Comment;
        comments: (topicId: string) => Comment[];
    };
    mutations: {};
    actions: {
        toggleLike: import("../stores/Store").StoreAction<unknown, (service: ICommentLikeService, topicId: string, commentId: string, isLike: boolean, currentUser: ResolvedUserIdentity) => void, (result: any, service: ICommentLikeService, topicId: string, commentId: string, isLike: boolean, currentUser: ResolvedUserIdentity) => void, (failureReason: any, service: ICommentLikeService, topicId: string, commentId: string, isLike: boolean, currentUser: ResolvedUserIdentity) => void, (service: ICommentLikeService, topicId: string, commentId: string, isLike: boolean, currentUser: ResolvedUserIdentity) => Promise<any>>;
        socialReacts: import("../stores/Store").StoreAction<unknown, (service: ICommentLikeService, topicId: string, commentId: string, isReacts: boolean, reactionType: ReactionType, currentUser: ResolvedUserIdentity) => void, (result: any, service: ICommentLikeService, topicId: string, commentId: string, isReacts: boolean, reactionType: ReactionType, currentUser: ResolvedUserIdentity) => void, (failureReason: any, service: ICommentLikeService, topicId: string, commentId: string, isReacts: boolean, reactionType: ReactionType, currentUser: ResolvedUserIdentity) => void, (service: ICommentLikeService, topicId: string, commentId: string, isReacts: boolean, reactionType: ReactionType, currentUser: ResolvedUserIdentity) => Promise<any>>;
        addOrUpdateComment: import("../stores/Store").StoreAction<unknown, (service: ICommentLikeService, comment: Comment) => void, (result: Comment, service: ICommentLikeService, comment: Comment) => void, (failureReason: any, service: ICommentLikeService, comment: Comment) => void, (service: ICommentLikeService, comment: Comment) => Promise<Comment>>;
        deleteComment: import("../stores/Store").StoreAction<unknown, (service: ICommentLikeService, comment: Comment, currentUser: ResolvedUserIdentity) => void, (result: any, service: ICommentLikeService, comment: Comment, currentUser: ResolvedUserIdentity) => void, (failureReason: any, service: ICommentLikeService, comment: Comment, currentUser: ResolvedUserIdentity) => void, (service: ICommentLikeService, comment: Comment, currentUser: ResolvedUserIdentity) => Promise<any>>;
        toggleBestReply: import("../stores/Store").StoreAction<unknown, (service: ICommentLikeService, topicId: string, commentId: string, currentUser: ResolvedUserIdentity) => void, (result: any, service: ICommentLikeService, topicId: string, commentId: string, currentUser: ResolvedUserIdentity) => void, (failureReason: any, service: ICommentLikeService, topicId: string, commentId: string, currentUser: ResolvedUserIdentity) => void, (service: ICommentLikeService, topicId: string, commentId: string, currentUser: ResolvedUserIdentity) => Promise<any>>;
        loadData: import("../stores/Store").StoreAction<unknown, (service: ICommentLikeService, topicId: string) => void, (result: any, service: ICommentLikeService, topicId: string) => void, (failureReason: any, service: ICommentLikeService, topicId: string) => void, (service: ICommentLikeService, topicId: string) => Promise<any>>;
    };
    onActivated(): void;
    onDisposing(): void;
}
