//#region src/types.d.ts
type ReviewRating = 1 | 2 | 3 | 4 | 5;
type ReviewStatus = 'pending' | 'approved' | 'rejected';
interface Review {
  id: string;
  productId: string;
  userId: string;
  purchaseId: string;
  vendorId: string | null;
  rating: ReviewRating;
  body: string | null;
  status: ReviewStatus;
  vendorReply: string | null;
  createdAt: Date;
  updatedAt: Date;
}
interface RatingAggregate {
  productId: string;
  avg: number;
  count: number;
  distribution: Record<ReviewRating, number>;
}
interface VerifiedPurchasePort {
  hasPurchased(userId: string, productId: string, purchaseId: string): Promise<boolean>;
}
interface ModerationAdapter {
  score(text: string): Promise<{
    action: 'approve' | 'flag' | 'reject';
    score: number;
  }>;
}
type Page<T> = {
  items: T[];
  nextCursor: string | null;
};
declare const REVIEW_LIST_DEFAULT_LIMIT = 20;
declare const REVIEW_LIST_MAX_LIMIT = 100;
//#endregion
export { RatingAggregate as a, ReviewStatus as c, REVIEW_LIST_MAX_LIMIT as i, VerifiedPurchasePort as l, Page as n, Review as o, REVIEW_LIST_DEFAULT_LIMIT as r, ReviewRating as s, ModerationAdapter as t };