import { ProductService as MedusaProductService } from "@medusajs/medusa"; import ProductRepository from "../repositories/product"; import { Product } from "@medusajs/medusa/dist/models"; import { FindProductConfig, ProductSelector, UpdateProductInput } from "@medusajs/medusa/dist/types/product"; import AttributeValueRepository from "../repositories/attribute-value"; import IntAttributeValueRepository from "../repositories/int-attribute-value"; import { IntAttributeParam } from "../api"; import { FindWithoutRelationsOptions } from "@medusajs/medusa/dist/repositories/product"; type InjectedDependencies = { productRepository: typeof ProductRepository; attributeValueRepository: typeof AttributeValueRepository; intAttributeValueRepository: typeof IntAttributeValueRepository; }; type AttributesArgument = { attributes?: string[]; int_attributes?: IntAttributeParam; }; declare class ProductService extends MedusaProductService { private readonly container; protected readonly productRepository_: typeof ProductRepository; protected readonly intAttributeValueRepository: typeof IntAttributeValueRepository; protected readonly attributeValueRepository_: typeof AttributeValueRepository; constructor(container: InjectedDependencies); private decorateProductWithAttributes; retrieve(productId: string, config?: FindProductConfig): Promise; update(productId: string, update: UpdateProductInput & { int_attribute_values?: Record[]; }): Promise; listAndCount(selector: ProductSelector & { attributes: string[]; int_attributes: IntAttributeParam; }, config?: FindProductConfig): Promise<[Product[], number]>; /** * Copying function from repo due to error `TypeError: productRepo.findWithRelationsAndCount is not a function` */ getResultsAndCountWithAttributes(q?: string, options?: FindWithoutRelationsOptions, relations?: string[], { attributes, int_attributes }?: AttributesArgument): Promise<[Product[], number]>; } export default ProductService;