import { Item } from './Item' ; import { ItemQuery } from './ItemQuery' ; import { ReadStream } from 'fs' ; export interface ItemRepositoryInterface { deleteByUserUuid ( userUuid ) : Promise < void > ; findAll ( query ) : Promise < Item [ ] > ; streamAll ( query ) : Promise < ReadStream > ; countAll ( query ) : Promise < number > ; findContentSizeForComputingTransferLimit ( query ) : Promise < Array < { uuid : string ; contentSize : number | null ; } > > ; findDatesForComputingIntegrityHash ( userUuid ) : Promise < Array < { content_type : string ; updated_at_timestamp : number ; } > > ; findByUuidAndUserUuid ( uuid , userUuid ) : Promise < Item | undefined > ; findByUuid ( uuid ) : Promise < Item | undefined > ; remove ( item ) : Promise < Item > ; save ( item ) : Promise < Item > ; markItemsAsDeleted ( itemUuids , updatedAtTimestamp ) : Promise < void > ; updateContentSize ( itemUuid , contentSize ) : Promise < void > ; }