import { FindOperator, FindOptionsWhere, SelectQueryBuilder } from "typeorm"; import { PriceList, Product, ProductCategory, ProductTag, SalesChannel } from "../models"; import { ExtendedFindConfig } from "@medusajs/types"; export type DefaultWithoutRelations = Omit, "relations">; export type FindWithoutRelationsOptions = DefaultWithoutRelations & { where: DefaultWithoutRelations["where"] & { price_list_id?: FindOperator; sales_channel_id?: FindOperator; category_id?: { value: string[]; }; categories?: FindOptionsWhere; tags?: FindOperator; include_category_children?: boolean; discount_condition_id?: string; }; }; export declare const ProductRepository: import("typeorm").Repository & { queryProducts(optionsWithoutRelations: FindWithoutRelationsOptions, shouldCount?: boolean): Promise<[Product[], number]>; queryProductsWithIds({ entityIds, groupedRelations, withDeleted, select, order, where, }: { entityIds: string[]; groupedRelations: { [toplevel: string]: string[]; }; withDeleted?: boolean | undefined; select?: (keyof Product)[] | undefined; order?: { [column: string]: "ASC" | "DESC"; } | undefined; where?: FindOptionsWhere | undefined; }): Promise; findWithRelationsAndCount(relations?: string[], idsOrOptionsWithoutRelations?: FindWithoutRelationsOptions): Promise<[Product[], number]>; findWithRelations(relations?: string[], idsOrOptionsWithoutRelations?: FindWithoutRelationsOptions | string[], withDeleted?: boolean): Promise; findOneWithRelations(relations?: string[], optionsWithoutRelations?: FindWithoutRelationsOptions): Promise; bulkAddToCollection(productIds: string[], collectionId: string): Promise; bulkRemoveFromCollection(productIds: string[], collectionId: string): Promise; getFreeTextSearchResultsAndCount(q: string, options?: FindWithoutRelationsOptions, relations?: string[]): Promise<[Product[], number]>; _findWithRelations({ relations, idsOrOptionsWithoutRelations, withDeleted, shouldCount, }: { relations: string[]; idsOrOptionsWithoutRelations: string[] | FindWithoutRelationsOptions; withDeleted: boolean; shouldCount: boolean; }): Promise<[Product[], number]>; isProductInSalesChannels(id: string, salesChannelIds: string[]): Promise; _applyCategoriesQuery(qb: SelectQueryBuilder, { alias, categoryAlias, where, joinName }: { alias: any; categoryAlias: any; where: any; joinName: any; }): SelectQueryBuilder; }; export default ProductRepository;