import { Comment, CommentAuthorType, CommentItemType, CommentState, Prisma, PrismaClient } from '@prisma/client';
import { Context } from '../../context';
export declare const addPublicComment: (input: {
    title?: string;
    text: string;
    challenge: {
        challengeID: string;
        challengeSolution: number;
    };
} & Omit<Prisma.CommentUncheckedCreateInput, "userID" | "state" | "authorType" | "revisions">, optionalAuthenticateUser: Context['optionalAuthenticateUser'], challenge: Context['challenge'], settingsClient: PrismaClient['setting'], commentClient: PrismaClient['comment']) => Promise<{
    title: string;
    text: string;
    revisions: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        text: Prisma.JsonValue;
        title: string;
        lead: string;
        commentId: string;
    }, unknown> & {})[];
    overriddenRatings: (import("@prisma/client/runtime/library").GetResult<{
        answerId: string;
        commentId: string;
        createdAt: Date;
        modifiedAt: Date;
        value: number;
    }, unknown> & {})[];
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    userID: string;
    source: string;
    state: CommentState;
    itemID: string;
    itemType: CommentItemType;
    peerId: string;
    parentID: string;
    rejectionReason: import(".prisma/client").CommentRejectionReason;
    authorType: CommentAuthorType;
    guestUsername: string;
    guestUserImageID: string;
}>;
export declare const updatePublicComment: (input: {
    id: Comment['id'];
} & Pick<Prisma.CommentsRevisionsCreateInput, 'text' | 'title' | 'lead'>, authenticateUser: Context['authenticateUser'], commentClient: PrismaClient['comment'], settingsClient: PrismaClient['setting']) => Promise<{
    text: Prisma.JsonValue;
    title: string;
    lead: string;
    revisions: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        text: Prisma.JsonValue;
        title: string;
        lead: string;
        commentId: string;
    }, unknown> & {})[];
    overriddenRatings: (import("@prisma/client/runtime/library").GetResult<{
        answerId: string;
        commentId: string;
        createdAt: Date;
        modifiedAt: Date;
        value: number;
    }, unknown> & {})[];
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    userID: string;
    source: string;
    state: CommentState;
    itemID: string;
    itemType: CommentItemType;
    peerId: string;
    parentID: string;
    rejectionReason: import(".prisma/client").CommentRejectionReason;
    authorType: CommentAuthorType;
    guestUsername: string;
    guestUserImageID: string;
}>;
