import { IWebComponentInstance } from "../../..";
import { CommentLikeStore, ICommentLikeService } from "../../../stores";
import { OmniaContext } from "../../..";
import { type Comment, type CommentLikeTemplateSettings, type ThemeDefinition, ResolvedUserIdentity } from "../../../models";
import { ICommentTemplate } from "../extensibilities/ICommentTemplate";
import { Theming, ThemeStore, VueComponentBase, BlockInstance } from "../..";
import { IdentitiesLocalization } from "../../identities/loc/localize";
export interface CommentLikeTemplateDynamicInput {
    service: ICommentLikeService;
    likeListingTemplate?: string;
    dateFormat?: string | "social";
}
export declare class CommentLikeTemplate extends VueComponentBase<{}, {}, {}> implements IWebComponentInstance, ICommentTemplate<CommentLikeTemplateDynamicInput> {
    comment: Comment;
    dynamicInput: CommentLikeTemplateDynamicInput;
    templateSettings: CommentLikeTemplateSettings;
    currentUser: ResolvedUserIdentity;
    canShowEditDialogOnLoad?: boolean;
    canLike?: boolean;
    openReply: (commentToReplyOn: Comment) => Comment;
    cancelReply: (comment: Comment) => void;
    refresh: (addedComment: boolean) => void;
    additionalRoles?: Array<string>;
    cardStyle?: ThemeDefinition;
    hideEdit?: boolean;
    readOnly?: boolean;
    markedBestReply?: () => void;
    commented?: () => void;
    commentedReply?: () => void;
    reactedSocial?: () => void;
    private omniaUxLocalization;
    private commentLoc;
    identityLoc: IdentitiesLocalization.locInterface;
    store: CommentLikeStore;
    omniaCtx: OmniaContext;
    themeStore: ThemeStore;
    protected blockInstance: BlockInstance;
    private commentDialogStore;
    dialogTheme: Theming;
    private dateFormat;
    private isEdit;
    private isAddingOrUpdatingComment;
    private isDeleting;
    private draftContent;
    private draftMentionUsers;
    private language;
    private resetContent;
    private isRTEPlaceholderClicked;
    private isLoadingRTE;
    private observer;
    private isValidComment;
    private deleteDialogModel;
    private useAccessibilityFeatures;
    private validateEnabledOnContentChanged;
    private get isAdd();
    private get isReply();
    private get isMobile();
    onTopicIdChange(newValue: Comment, oldValue: Comment): void;
    created(): void;
    mounted(): void;
    beforeDestroy(): void;
    private openMobileDialog;
    private initializeObserverLazyLoadEditor;
    private loadRichTextEditor;
    private getReplyToComment;
    private getSocialReactions;
    private onClickReply;
    private onClickEdit;
    private onClickMarkBestReply;
    private onClickRemoveReplyToComment;
    private onClickDelete;
    private getContentInsideTag;
    private trimCommentContent;
    private onDialogCancel;
    private onDialogSave;
    private onSave;
    private saveCommentInternal;
    private validateComment;
    onContentUpdate(content: string): void;
    validateOnContentChanged(content: string): void;
    onMentionUpdate(mentionUsers: Array<ResolvedUserIdentity>): void;
    onCommentTextFieldClicked(e: Event): void;
    private renderUserLink;
    private renderTitleInfo;
    private renderEditContentBody;
    private renderEditButton;
    private renderDeleteButton;
    private renderDeleteDialog;
    private renderEditOptionsBase;
    private renderMarkBestReplyButton;
    private renderEditOptions;
    private renderDisplay;
    private renderDeletedMessage;
    render(): VueTsxSupport.JSX.Element;
}
