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;

export { type ModerationAdapter as M, type Page as P, type ReviewStatus as R, type VerifiedPurchasePort as V, type RatingAggregate as a, type Review as b, REVIEW_LIST_DEFAULT_LIMIT as c, REVIEW_LIST_MAX_LIMIT as d, type ReviewRating as e };
