import { AlbumEntity } from '@app/infra/entities'; export const IAlbumRepository = 'IAlbumRepository'; export interface AlbumAssetCount { albumId: string; assetCount: number; } export interface IAlbumRepository { getById(id: string): Promise; getByIds(ids: string[]): Promise; getByAssetId(ownerId: string, assetId: string): Promise; hasAsset(id: string, assetId: string): Promise; getAssetCountForIds(ids: string[]): Promise; getInvalidThumbnail(): Promise; getOwned(ownerId: string): Promise; getShared(ownerId: string): Promise; getNotShared(ownerId: string): Promise; deleteAll(userId: string): Promise; getAll(): Promise; create(album: Partial): Promise; update(album: Partial): Promise; delete(album: AlbumEntity): Promise; updateThumbnails(): Promise; }