import { PrismaService } from '../../prisma';
import { CreateProjectDto } from './dto/create-project.dto';
import { UpdateProjectDto } from './dto/update-project.dto';
export declare class ProjectsService {
    private prisma;
    constructor(prisma: PrismaService);
    findAllPublic(params?: {
        page?: number;
        limit?: number;
        category?: string;
    }): Promise<{
        data: ({
            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;
            summary: string | null;
            body: import("@prisma/client/runtime/library").JsonValue;
            category: string | null;
            coverMediaId: string | null;
            startDate: Date | null;
            endDate: Date | null;
            ctaLabel: string | null;
            ctaUrl: string | null;
            slug: string;
            authorId: string;
            publishedAt: Date | null;
        })[];
        meta: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        };
    }>;
    findBySlugPublic(slug: string): Promise<{
        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;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    findAllAdmin(params?: {
        page?: number;
        limit?: number;
        status?: string;
    }): Promise<{
        data: ({
            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;
            summary: string | null;
            body: import("@prisma/client/runtime/library").JsonValue;
            category: string | null;
            coverMediaId: string | null;
            startDate: Date | null;
            endDate: Date | null;
            ctaLabel: string | null;
            ctaUrl: string | null;
            slug: string;
            authorId: string;
            publishedAt: Date | null;
        })[];
        meta: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        };
    }>;
    findById(id: string): Promise<{
        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;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    create(dto: CreateProjectDto, authorId: string): Promise<{
        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;
    } & {
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    update(id: string, dto: UpdateProjectDto): Promise<{
        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;
    } & {
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    publish(id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    archive(id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    remove(id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.ContentStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        title: string;
        summary: string | null;
        body: import("@prisma/client/runtime/library").JsonValue;
        category: string | null;
        coverMediaId: string | null;
        startDate: Date | null;
        endDate: Date | null;
        ctaLabel: string | null;
        ctaUrl: string | null;
        slug: string;
        authorId: string;
        publishedAt: Date | null;
    }>;
    private generateSlug;
}
