ProductReviewsModule: { count: ((query: ProductReviewQuery) => Promise<number>); create: ((doc: ProductReview, userId?: string) => Promise<ProductReview>); delete: ((productPreviewId: string, userId?: string) => Promise<number>); findProductReview: ((query: { productReviewId: string }) => Promise<ProductReview>); findProductReviews: ((query: ProductReviewQuery & { limit?: number; offset?: number; sort?: SortOption[] }) => Promise<ProductReview[]>); reviewExists: ((query: { productReviewId: string }) => Promise<boolean>); update: ((productReviewId: string, doc: ProductReview, userId?: string) => Promise<ProductReview>); votes: { addVote: ((productReview: ProductReview, doc: ProductVote, userId?: string) => Promise<ProductReview>); ownVotes: ((productReview: ProductReview, query: { userId: string }) => ProductVote[]); removeVote: ((productReviewId: string, doc: ProductVote, userId?: string) => Promise<ProductReview>); userIdsThatVoted: ((productReview: ProductReview, query: { type: ProductReviewVoteType }) => string[]) } }

Type declaration