import { Repository } from 'typeorm';
import { LibraryEntity } from './entities/library.entity';
import { CreateLibraryDto } from './dto/create-library.dto';
import { UpdateLibraryDto } from './dto/update-library.dto';
import { QueryLibraryDto } from './dto/query-library.dto';
import { FileUploadService } from 'modules/file-upload/file-upload.service';
export declare class LibraryService {
    private readonly libraryRepository;
    private readonly fileUploadService;
    private readonly logger;
    constructor(libraryRepository: Repository<LibraryEntity>, fileUploadService: FileUploadService);
    create(createLibraryDto: CreateLibraryDto, file: Express.Multer.File): Promise<LibraryEntity>;
    findAll(queryParams: QueryLibraryDto): Promise<[LibraryEntity[], number]>;
    findOne(id: number): Promise<LibraryEntity>;
    getAllAttachmentUrls(page?: number, limit?: number): Promise<{
        data: string[];
        total: number;
        page: number;
        limit: number;
    }>;
    update(id: number, updateLibraryDto: UpdateLibraryDto): Promise<LibraryEntity>;
    remove(id: number): Promise<void>;
    softDelete(id: number): Promise<LibraryEntity>;
    findByUserId(userId: number): Promise<LibraryEntity[]>;
    findPublic(): Promise<LibraryEntity[]>;
    togglePublicStatus(id: number): Promise<LibraryEntity>;
    findByCategory(category: string): Promise<LibraryEntity[]>;
    findByTags(tags: string[]): Promise<LibraryEntity[]>;
}
