import { ClientProxy } from '@nestjs/microservices'; import { AbstractParam, File } from '@yolo-croket-dev/core'; import { CheckImageAssetHashesPayload, CheckImageAssetHashesResult, CleanupExpiredImageAssetsPayload, CleanupExpiredImageAssetsResult, DeleteImageAssetPayload, DeleteImageAssetResult, GetImageAssetPayload, GetImageAssetResult, GetImageAssetsPayload, GetImageAssetsResult, SyncImageAssetReferencesPayload, SyncImageAssetReferencesResult, UploadImageAssetsPayload, UploadImageAssetsResult } from '../dto'; /** * @author 최홍준 * @description Image Server의 셀러 이미지 보관함 기능을 호출합니다. * @process 파일 업로드·중복 조회·목록·상세·삭제 요청을 각 이미지 보관함 메시지 패턴으로 전달합니다. */ export declare class AmqpImageAssetService { private readonly client; private readonly amqpManager; constructor(client: ClientProxy); /** * @author 최홍준 * @description 셀러가 선택한 이미지 파일들을 이미지 보관함에 업로드합니다. * @process 파일 데이터와 원본 MD5·이미지 용도를 Image Server에 전달하고 파일별 결과를 반환합니다. */ uploadImageAssets(file: File, payload: UploadImageAssetsPayload, param: AbstractParam): Promise; /** * @author 최홍준 * @description 셀러 이미지 보관함에서 원본 MD5 중복 여부를 조회합니다. * @process 이미지 용도별 해시 목록을 전달하고 재사용 가능한 기존 이미지 자산을 반환합니다. */ checkImageAssetHashes(payload: CheckImageAssetHashesPayload, param: AbstractParam): Promise; /** * @author 최홍준 * @description 셀러가 소유한 이미지 보관함 목록을 조회합니다. * @process 이미지 용도와 페이지 조건을 Image Server에 전달하고 페이지 목록을 반환합니다. */ getImageAssets(payload: GetImageAssetsPayload, param: AbstractParam): Promise; /** * @author 최홍준 * @description 셀러가 소유한 이미지 보관함 자산 한 건을 조회합니다. * @process 이미지 자산 식별자를 Image Server에 전달하고 활성 이미지 정보를 반환합니다. */ getImageAsset(payload: GetImageAssetPayload, param: AbstractParam): Promise; /** * @author 최홍준 * @description 미사용 셀러 이미지 보관함 자산을 삭제합니다. * @process 이미지 자산 식별자를 Image Server에 전달하고 소유권·사용 여부 검증 결과를 반환합니다. */ deleteImageAsset(payload: DeleteImageAssetPayload, param: AbstractParam): Promise; /** * @author 최홍준 * @description 상품이 현재 사용하는 셀러 이미지 자산 참조를 동기화합니다. * @process 최종 URL 목록과 기존 참조의 차이를 계산하도록 Image Server에 전달합니다. */ syncImageAssetReferences(payload: SyncImageAssetReferencesPayload, param: AbstractParam): Promise; /** * @author 최홍준 * @description 삭제·업로드 실패 셀러 이미지의 잔여 R2 객체를 정리합니다. * @process 스케줄러가 전달한 처리 개수만큼 정리하고 성공·실패 집계를 반환합니다. */ cleanupExpiredImageAssets(payload: CleanupExpiredImageAssetsPayload, param: AbstractParam): Promise; }