import { Repository, DataSource } from 'typeorm';
import type { ConfigType } from '@nestjs/config';
import { CreateNewsDto } from './dto/create-news.dto';
import { UpdateNewsDto } from './dto/update-news.dto';
import { LoggerService } from "../services/logger/logger.service";
import { News } from './entities/news.entity';
import uploadConfig from "../files/config/upload.config";
import { SlugService } from "../common/slug/slug.service";
import { PaginationDto } from "../common/dto/pagination.dto";
export declare class NewsService {
    private readonly newsRespository;
    private readonly logger;
    private readonly slugService;
    private readonly dataSource;
    private readonly config;
    constructor(newsRespository: Repository<News>, logger: LoggerService, slugService: SlugService, dataSource: DataSource, config: ConfigType<typeof uploadConfig>);
    create(createNewsDto: CreateNewsDto): Promise<News>;
    findAll(paginationDto: PaginationDto): Promise<{
        total: number;
        limit: number;
        offset: number;
        news: {
            imageNews: string | null;
            filePdf: string | null;
            id: number;
            title: string;
            author: string;
            content: string;
            urlNews: string;
            year: string;
            isActive: boolean;
            slug: string;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    findAllPublic(paginationDto: PaginationDto): Promise<{
        total: number;
        limit: number;
        offset: number;
        news: {
            imageNews: string | null;
            filePdf: string | null;
            id: number;
            title: string;
            author: string;
            content: string;
            urlNews: string;
            year: string;
            isActive: boolean;
            slug: string;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    findOne(id: number): Promise<{
        imageNews: string | null;
        filePdf: string | null;
        id: number;
        title: string;
        author: string;
        content: string;
        urlNews: string;
        year: string;
        isActive: boolean;
        slug: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findBySlug(slug: string): Promise<{
        imageNews: string | null;
        filePdf: string | null;
        id: number;
        title: string;
        author: string;
        content: string;
        urlNews: string;
        year: string;
        isActive: boolean;
        slug: string;
        createdAt: Date;
        updatedAt: Date;
    } | null>;
    findOneRaw(id: number): Promise<News>;
    updateFiles(id: number, updateFilds: {
        imageNews?: string;
        filePdf?: string;
    }): Promise<void>;
    update(id: number, updateNewsDto: UpdateNewsDto): Promise<News & UpdateNewsDto>;
    remove(id: number): Promise<{
        message: string;
    }>;
    private handleDBExceptions;
}
