import { ArticlesService } from './articles.service';
import { CreateArticleDto } from './dto/create-article.dto';
import { UpdateArticleDto } from './dto/update-article.dto';
export declare class ArticlesController {
    private articlesService;
    constructor(articlesService: ArticlesService);
    findAllPublic(page?: number, limit?: number, category?: string): Promise<{
        data: ({
            tags: {
                id: string;
                articleId: string;
                tag: string;
            }[];
            coverMedia: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                deletedAt: Date | null;
                type: import(".prisma/client").$Enums.MediaType;
                tags: import("@prisma/client/runtime/library").JsonValue | null;
                url: string;
                originalUrl: string | null;
                mimeType: string | null;
                fileName: string;
                fileSize: number | null;
                width: number | null;
                height: number | null;
                altText: string | null;
                caption: string | null;
                photographer: string | null;
                source: string | null;
                folder: string | null;
                uploadedBy: string;
            } | null;
            author: {
                name: string;
                id: string;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.ContentStatus;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            title: string;
            body: import("@prisma/client/runtime/library").JsonValue;
            category: string | null;
            coverMediaId: string | null;
            slug: string;
            authorId: string;
            publishedAt: Date | null;
            excerpt: string | null;
            seoTitle: string | null;
            seoDescription: string | null;
            scheduledAt: Date | null;
        })[];
        meta: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        };
    }>;
    findBySlug(slug: string): Promise<{
        tags: {
            id: string;
            articleId: string;
            tag: string;
        }[];
        coverMedia: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            type: import(".prisma/client").$Enums.MediaType;
            tags: import("@prisma/client/runtime/library").JsonValue | null;
            url: string;
            originalUrl: string | null;
            mimeType: string | null;
            fileName: string;
            fileSize: number | null;
            width: number | null;
            height: number | null;
            altText: string | null;
            caption: string | null;
            photographer: string | null;
            source: string | null;
            folder: string | null;
            uploadedBy: string;
        } | null;
        author: {
            name: string;
            id: string;
        };
    } & {
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
        excerpt: string | null;
        seoTitle: string | null;
        seoDescription: string | null;
        scheduledAt: Date | null;
    }>;
    findAllAdmin(page?: number, limit?: number, status?: string): Promise<{
        data: ({
            tags: {
                id: string;
                articleId: string;
                tag: string;
            }[];
            coverMedia: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                deletedAt: Date | null;
                type: import(".prisma/client").$Enums.MediaType;
                tags: import("@prisma/client/runtime/library").JsonValue | null;
                url: string;
                originalUrl: string | null;
                mimeType: string | null;
                fileName: string;
                fileSize: number | null;
                width: number | null;
                height: number | null;
                altText: string | null;
                caption: string | null;
                photographer: string | null;
                source: string | null;
                folder: string | null;
                uploadedBy: string;
            } | null;
            author: {
                name: string;
                id: string;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.ContentStatus;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            title: string;
            body: import("@prisma/client/runtime/library").JsonValue;
            category: string | null;
            coverMediaId: string | null;
            slug: string;
            authorId: string;
            publishedAt: Date | null;
            excerpt: string | null;
            seoTitle: string | null;
            seoDescription: string | null;
            scheduledAt: Date | null;
        })[];
        meta: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        };
    }>;
    findById(id: string): Promise<{
        tags: {
            id: string;
            articleId: string;
            tag: string;
        }[];
        coverMedia: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            type: import(".prisma/client").$Enums.MediaType;
            tags: import("@prisma/client/runtime/library").JsonValue | null;
            url: string;
            originalUrl: string | null;
            mimeType: string | null;
            fileName: string;
            fileSize: number | null;
            width: number | null;
            height: number | null;
            altText: string | null;
            caption: string | null;
            photographer: string | null;
            source: string | null;
            folder: string | null;
            uploadedBy: string;
        } | null;
        author: {
            name: string;
            id: string;
        };
    } & {
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
        excerpt: string | null;
        seoTitle: string | null;
        seoDescription: string | null;
        scheduledAt: Date | null;
    }>;
    create(dto: CreateArticleDto, user: any): Promise<{
        tags: {
            id: string;
            articleId: string;
            tag: string;
        }[];
    } & {
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
        excerpt: string | null;
        seoTitle: string | null;
        seoDescription: string | null;
        scheduledAt: Date | null;
    }>;
    update(id: string, dto: UpdateArticleDto): Promise<{
        tags: {
            id: string;
            articleId: string;
            tag: string;
        }[];
    } & {
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
        excerpt: string | null;
        seoTitle: string | null;
        seoDescription: string | null;
        scheduledAt: Date | null;
    }>;
    publish(id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
        excerpt: string | null;
        seoTitle: string | null;
        seoDescription: string | null;
        scheduledAt: Date | null;
    }>;
    remove(id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
        excerpt: string | null;
        seoTitle: string | null;
        seoDescription: string | null;
        scheduledAt: Date | null;
    }>;
}
