import { PrismaService } from '../prisma/prisma.service';
export declare class DiscussionService {
    private prisma;
    constructor(prisma: PrismaService);
    createDiscussion(userId: number, courseId: number, data: {
        title: string;
        content: string;
        lessonId?: number;
    }): Promise<{
        user: {
            id: number;
            first_name: string;
            last_name: string;
            photo: string;
        };
    } & import("@prisma/client/runtime").GetResult<{
        id: number;
        title: string;
        content: string;
        userId: number;
        courseId: number;
        lessonId: number;
        created_at: Date;
        updated_at: Date;
    }, unknown, never> & {}>;
    getDiscussionsByCourseId(courseId: number, page?: number, lessonId?: number, limit?: number): Promise<{
        data: ({
            user: {
                id: number;
                first_name: string;
                last_name: string;
                photo: string;
            };
            _count: {
                comments: number;
            };
        } & import("@prisma/client/runtime").GetResult<{
            id: number;
            title: string;
            content: string;
            userId: number;
            courseId: number;
            lessonId: number;
            created_at: Date;
            updated_at: Date;
        }, unknown, never> & {})[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getDiscussionById(id: number): Promise<{
        user: {
            id: number;
            first_name: string;
            last_name: string;
            photo: string;
        };
        comments: ({
            user: {
                id: number;
                first_name: string;
                last_name: string;
                photo: string;
            };
        } & import("@prisma/client/runtime").GetResult<{
            id: number;
            content: string;
            userId: number;
            discussionId: number;
            created_at: Date;
            updated_at: Date;
        }, unknown, never> & {})[];
    } & import("@prisma/client/runtime").GetResult<{
        id: number;
        title: string;
        content: string;
        userId: number;
        courseId: number;
        lessonId: number;
        created_at: Date;
        updated_at: Date;
    }, unknown, never> & {}>;
    getDiscussionDetail(id: number): Promise<{
        user: {
            id: number;
            first_name: string;
            last_name: string;
            photo: string;
        };
        lesson: {
            id: number;
            title: string;
        };
        comments: ({
            user: {
                id: number;
                first_name: string;
                last_name: string;
                photo: string;
            };
        } & import("@prisma/client/runtime").GetResult<{
            id: number;
            content: string;
            userId: number;
            discussionId: number;
            created_at: Date;
            updated_at: Date;
        }, unknown, never> & {})[];
    } & import("@prisma/client/runtime").GetResult<{
        id: number;
        title: string;
        content: string;
        userId: number;
        courseId: number;
        lessonId: number;
        created_at: Date;
        updated_at: Date;
    }, unknown, never> & {}>;
    createComment(userId: number, discussionId: number, content: string): Promise<{
        user: {
            id: number;
            first_name: string;
            last_name: string;
            photo: string;
        };
    } & import("@prisma/client/runtime").GetResult<{
        id: number;
        content: string;
        userId: number;
        discussionId: number;
        created_at: Date;
        updated_at: Date;
    }, unknown, never> & {}>;
}
