///
import * as moment from 'moment';
import { Entity } from '../core/models';
import { User } from '../user/user.model';
import { Vote } from '../vote/vote.model';
import Moment = moment.Moment;
export declare type CommentRole = 'pro' | 'con' | 'neutral';
export interface Comment extends Entity {
text: string;
role: CommentRole;
posted: Moment;
userDistrict: null | {
id: string;
name: string;
};
voteStats?: {
up?: number;
down?: number;
};
author?: User;
sessionUserVote?: Vote | null;
}
export declare type DenormalizedComment = Comment & {
votes: Vote[];
replies: Comment[];
author: User;
};
export declare type NewCommentData = {
text: string;
role: string;
};
export declare const parseComment: (data: Partial | any) => Comment;
export declare function commentsEqual(x: Comment, y: Comment): boolean;
export declare function mergeComments(prev: Comment, next: Comment): Comment;