import type { CommerceTypes } from '@brandingbrand/fscommerce'; import type { Constructor } from '../../helpers'; export declare const ProductCatalogMixin: >(superclass: T) => { new (...args: any[]): { fetchProduct(id: string): Promise; fetchProductIndex(query: CommerceTypes.ProductQuery): Promise; fetchCategory(id?: string, query?: CommerceTypes.CategoryQuery): Promise; fetchProductRecommendations(id: string): Promise; search(keyword: string, query?: CommerceTypes.ProductQuery): Promise; searchSuggestion(query: string): Promise; applyCategoryIdFilter(products: CommerceTypes.Product[], categoryId?: string): CommerceTypes.Product[]; applyProductIdFilter(products: CommerceTypes.Product[], productIds?: string[]): CommerceTypes.Product[]; applyHandleFilter(products: CommerceTypes.Product[], handle?: string): CommerceTypes.Product[]; applyKeywordFilter(products: CommerceTypes.Product[], keyword?: string): CommerceTypes.Product[]; applyRefinementFilters(products: CommerceTypes.Product[], refinements?: Record): CommerceTypes.Product[]; applySorting(products: CommerceTypes.Product[], sortBy?: string): CommerceTypes.Product[]; applyPagination(products: CommerceTypes.Product[], page?: number, limit?: number): CommerceTypes.Product[]; searchCategories(id: string, categories: CommerceTypes.Category[]): CommerceTypes.Category | undefined; minRefinements: number; storeCurrencyCode: string; fetchProducts(ids: string[]): Promise; }; } & T;