import { Entity } from "./Entity";
import { Mention } from "./Mention";
import { User } from "./User";
import { ReactionCounts, ReactionType } from "./Reaction";
export interface GifData {
    id: string;
    url: string;
    gifUrl: string;
    gifPreviewUrl: string;
    altText: string | undefined;
    aspectRatio: number;
}
export interface Comment {
    id: string;
    projectId: string;
    foreignId: string | null;
    entityId: string;
    entity?: Entity;
    userId: string;
    user?: User;
    parentId: string | null;
    parentComment?: Comment;
    content: string | null;
    gif: GifData | null;
    mentions: Mention[];
    upvotes: string[];
    downvotes: string[];
    reactionCounts: ReactionCounts;
    userReaction?: ReactionType | null;
    repliesCount: number;
    metadata: Record<string, any>;
    createdAt: Date;
    updatedAt: Date;
    deletedAt: Date | null;
    parentDeletedAt: Date | null;
    userDeletedAt: Date | null;
    moderationStatus: "approved" | "removed" | null;
    moderatedAt: Date | null;
    moderatedById: string | null;
    moderatedByType: "client" | "user" | null;
    moderationReason: string | null;
}
export type CommentInclude = "user" | "entity" | "space" | "parent";
export type CommentIncludeArray = CommentInclude[];
export type CommentIncludeParam = CommentInclude | CommentIncludeArray;
