import { LibraryEntity, LibraryType } from '@app/infra/entities'; import { LibraryStatsResponseDto } from './library.dto'; export const ILibraryRepository = 'ILibraryRepository'; export interface ILibraryRepository { getCountForUser(ownerId: string): Promise; getAllByUserId(userId: string, type?: LibraryType): Promise; getAll(withDeleted?: boolean, type?: LibraryType): Promise; getAllDeleted(): Promise; get(id: string, withDeleted?: boolean): Promise; create(library: Partial): Promise; delete(id: string): Promise; softDelete(id: string): Promise; getDefaultUploadLibrary(ownerId: string): Promise; getUploadLibraryCount(ownerId: string): Promise; update(library: Partial): Promise; getStatistics(id: string): Promise; getOnlineAssetPaths(id: string): Promise; getAssetIds(id: string, withDeleted?: boolean): Promise; existsByName(name: string, withDeleted?: boolean): Promise; }