import { IWebComponentInstance, SubscriptionHandler } from "../..";
import { ReactionType, ResolvedUserIdentity, UserIdentity, ISocialReactionStyling, ISocialReaction } from "../../models";
import { ILikeComponent } from "./ILike";
import { CommentLocalization } from "./loc/localize";
import { CommentLikeStore, ICommentLikeService } from "../../stores";
import { OmniaContext } from "../../contexts";
import "./Like.css";
import { LikeStyles } from "../models";
import { VueComponentBase } from "..";
import { IdentitiesLocalization } from "../identities/loc/localize";
interface LikeUser {
    identity: UserIdentity;
    displayName: string;
    profileUrl: string;
    isCurrentUser?: boolean;
    reactionType?: ReactionType;
}
export declare class LikeComponent extends VueComponentBase implements IWebComponentInstance, ILikeComponent {
    store: CommentLikeStore;
    omniaContext: OmniaContext;
    subscriptionHandler: SubscriptionHandler;
    commentLocalization: CommentLocalization.locInterface;
    identityLoc: IdentitiesLocalization.locInterface;
    topicId: string;
    commendId?: string;
    likeListingTemplate: string;
    extendComponents: Array<{
        elem: string;
        dynamicInput: any;
    }>;
    likes: Array<ISocialReaction>;
    commentLikeService: ICommentLikeService;
    styles?: typeof LikeStyles;
    isCompactMode?: boolean;
    isSummaryMode?: boolean;
    reactedSocial?: () => void;
    currentUser: ResolvedUserIdentity;
    showLikeListing: boolean;
    socialReactionStylings: Array<ISocialReactionStyling>;
    isSocialReactionsMode: boolean;
    isShowingSocialReactionsDetail: boolean;
    isMenuOpen: boolean;
    currentSocialReaction: ISocialReactionStyling;
    likeClasses: {
        likesToShow?: any;
        underlineWhenHover?: any;
        buttonOutline?: any;
        personWrapper?: any;
        buttonPosition?: any;
        socialReactionIconWrapper?: any;
        socialReactionIcon?: any;
        socialReactionContainer?: any;
        socialReactionSummary?: any;
        socialReactionMenu?: any;
        replyAndLikeActionLink?: any;
    };
    omniaUrl: string;
    isExpandedMode: boolean;
    beforeDestroy(): void;
    created(): void;
    mounted(): void;
    initSocialReactionsMode(): void;
    onSocialReactionClick(isReacts: boolean, reactionType: ReactionType): void;
    getLikesToShow(likes: Array<ISocialReaction>): Array<LikeUser>;
    renderUserLink(item: LikeUser): VueTsxSupport.JSX.Element;
    renderLikedByTitle(likes: Array<ISocialReaction>, likesToShow: Array<LikeUser>): VueTsxSupport.JSX.Element[];
    onOpenSocialReactionsDetail(): void;
    onCloseSocialReactionsDetail(): void;
    onOpenSocalReactions(e: Event): void;
    onCloseSocialReactions(): void;
    renderSocialReactions(): VueTsxSupport.JSX.Element;
    renderLikes(): VueTsxSupport.JSX.Element[];
    render(): VueTsxSupport.JSX.Element;
}
export {};
