import { OnModuleInit } from '@nestjs/common';
import { CreateBlogDto } from './dto/create-blog.dto';
import { CreateCommentDto, CreateReplyDto, LikeBlogDto, VerifyCommentDto } from './dto/comments.dto';
import { Blog } from './schemas/blog.schema';
import { BlogComment } from './schemas/blog-comment.schema';
import { DbService } from "../db/db.service";
export declare class BlogsService implements OnModuleInit {
    private readonly model;
    constructor(model: DbService);
    onModuleInit(): Promise<void>;
    private buildQueryFilter;
    private resolveCategoryId;
    private resolveAuthorId;
    private populateBlogMeta;
    create(createBlogDto: CreateBlogDto): Promise<Blog>;
    findAll(query?: {
        slug?: string;
        category?: string;
        page?: number;
        limit?: number;
        search?: string;
        platformType?: string;
    }): Promise<any>;
    findOne(idOrSlug: string): Promise<Blog>;
    update(id: string, updateBlogDto: Partial<CreateBlogDto>): Promise<Blog>;
    delete(id: string): Promise<{
        success: boolean;
        message: string;
    }>;
    addLike(idOrSlug: string, dto?: LikeBlogDto): Promise<{
        success: boolean;
        likes: number;
        action: string;
        message: string;
    }>;
    addView(idOrSlug: string): Promise<{
        success: boolean;
        views: number;
        message: string;
    }>;
    addComment(idOrSlug: string | undefined, dto: CreateCommentDto): Promise<{
        success: boolean;
        message: string;
        comment: BlogComment;
    }>;
    addReply(commentId: string, dto: CreateReplyDto): Promise<{
        success: boolean;
        message: string;
        reply: any;
        comment: BlogComment;
    }>;
    getComments(idOrSlug: string): Promise<{
        success: boolean;
        total: number;
        data: BlogComment[];
    }>;
    deleteComment(commentId: string): Promise<{
        success: boolean;
        message: string;
    }>;
    deleteReply(commentId: string, replyId: string): Promise<{
        success: boolean;
        message: string;
    }>;
    verifyComment(commentId: string, dto: VerifyCommentDto): Promise<{
        success: boolean;
        message: string;
        comment: BlogComment;
    }>;
    getAllComments(query?: {
        page?: number;
        limit?: number;
        status?: string;
        isVerified?: string | boolean;
        blog_id?: string;
        search?: string;
    }): Promise<{
        success: boolean;
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        data: any[];
    }>;
    verifyBlog(idOrSlug: string, isVerified?: boolean, verifiedBy?: string): Promise<Blog>;
}
