import { Context } from "@medusajs/framework/types"; import { ProductReviewStats } from "./types"; interface CalculatedProductReviewStats { product_id: string; review_count: number; average_rating: number; rating_count_1: number; rating_count_2: number; rating_count_3: number; rating_count_4: number; rating_count_5: number; } declare const ProductReviewService_base: import("@medusajs/framework/utils").MedusaServiceReturnType; name: import("@medusajs/framework/utils").NullableModifier; email: import("@medusajs/framework/utils").NullableModifier; phone: import("@medusajs/framework/utils").NullableModifier; rating: import("@medusajs/framework/utils").NumberProperty; title: import("@medusajs/framework/utils").NullableModifier; description: import("@medusajs/framework/utils").NullableModifier; product_id: import("@medusajs/framework/utils").NullableModifier; associated_medias: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity; url: import("@medusajs/framework/utils").TextProperty; type: import("@medusajs/framework/utils").EnumProperty<["IMAGE", "VIDEO"]>; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity, "product_review">, undefined>; }>, "review_associated_media">>; response: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity; content: import("@medusajs/framework/utils").TextProperty; admin_user_id: import("@medusajs/framework/utils").TextProperty; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity, "product_review">, undefined>; }>, "product_review_response">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity; content: import("@medusajs/framework/utils").TextProperty; admin_user_id: import("@medusajs/framework/utils").TextProperty; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity, "product_review">, undefined>; }>, "product_review_response">>, false>; is_verified_purchase: import("@medusajs/framework/utils").BooleanProperty; is_admin_verified: import("@medusajs/framework/utils").BooleanProperty; }>, "product_review">; readonly ProductReviewResponse: import("@medusajs/framework/utils").DmlEntity; content: import("@medusajs/framework/utils").TextProperty; admin_user_id: import("@medusajs/framework/utils").TextProperty; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity; name: import("@medusajs/framework/utils").NullableModifier; email: import("@medusajs/framework/utils").NullableModifier; phone: import("@medusajs/framework/utils").NullableModifier; rating: import("@medusajs/framework/utils").NumberProperty; title: import("@medusajs/framework/utils").NullableModifier; description: import("@medusajs/framework/utils").NullableModifier; product_id: import("@medusajs/framework/utils").NullableModifier; associated_medias: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity; url: import("@medusajs/framework/utils").TextProperty; type: import("@medusajs/framework/utils").EnumProperty<["IMAGE", "VIDEO"]>; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity, "product_review">, undefined>; }>, "review_associated_media">>; response: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity, "product_review_response">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity, "product_review_response">>, false>; is_verified_purchase: import("@medusajs/framework/utils").BooleanProperty; is_admin_verified: import("@medusajs/framework/utils").BooleanProperty; }>, "product_review">, undefined>; }>, "product_review_response">; readonly ProductReviewStats: import("@medusajs/framework/utils").DmlEntity; product_id: import("@medusajs/framework/utils").TextProperty; average_rating: import("@medusajs/framework/utils").NullableModifier; review_count: import("@medusajs/framework/utils").NumberProperty; rating_count_1: import("@medusajs/framework/utils").NumberProperty; rating_count_2: import("@medusajs/framework/utils").NumberProperty; rating_count_3: import("@medusajs/framework/utils").NumberProperty; rating_count_4: import("@medusajs/framework/utils").NumberProperty; rating_count_5: import("@medusajs/framework/utils").NumberProperty; }>, "product_review_stats">; readonly ReviewAssociatedMedia: import("@medusajs/framework/utils").DmlEntity; url: import("@medusajs/framework/utils").TextProperty; type: import("@medusajs/framework/utils").EnumProperty<["IMAGE", "VIDEO"]>; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity; name: import("@medusajs/framework/utils").NullableModifier; email: import("@medusajs/framework/utils").NullableModifier; phone: import("@medusajs/framework/utils").NullableModifier; rating: import("@medusajs/framework/utils").NumberProperty; title: import("@medusajs/framework/utils").NullableModifier; description: import("@medusajs/framework/utils").NullableModifier; product_id: import("@medusajs/framework/utils").NullableModifier; associated_medias: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity, "review_associated_media">>; response: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity; content: import("@medusajs/framework/utils").TextProperty; admin_user_id: import("@medusajs/framework/utils").TextProperty; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity, "product_review">, undefined>; }>, "product_review_response">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity; content: import("@medusajs/framework/utils").TextProperty; admin_user_id: import("@medusajs/framework/utils").TextProperty; product_review: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity, "product_review">, undefined>; }>, "product_review_response">>, false>; is_verified_purchase: import("@medusajs/framework/utils").BooleanProperty; is_admin_verified: import("@medusajs/framework/utils").BooleanProperty; }>, "product_review">, undefined>; }>, "review_associated_media">; readonly ProductReviewConfig: import("@medusajs/framework/utils").DmlEntity; key: import("@medusajs/framework/utils").TextProperty; value: import("@medusajs/framework/utils").BooleanProperty; }>, "product_review_config">; }>>; declare class ProductReviewService extends ProductReviewService_base { constructor(container: any); protected ensureDefaultConfigs(): Promise; refreshProductReviewStats(productIds: string[], sharedContext?: Context): Promise; createProductReviewsWithTimestamps(data: { name?: string | null; email?: string | null; phone?: string | null; rating: number; title?: string | null; description?: string | null; product_id: string; is_verified_purchase?: boolean; is_admin_verified?: boolean; created_at?: Date; updated_at?: Date; }, sharedContext?: Context): Promise; calculateProductReviewStats(productIds: string[], sharedContext?: Context): Promise; } export default ProductReviewService;