import { SearchProductsSortBy } from "./graphql/types"; import { Filtered } from "./productFiltering"; import { VariantPricer, VariantPriceInfoEnv } from "./variantPrice"; export interface ProductInfo { idx: number; title: string; price: number; rating: number | undefined; } export interface SortOption { id: string; api: () => [SearchProductsSortBy, boolean]; func: (a: ProductInfo, b: ProductInfo) => number; apiOnly?: boolean; } export declare const sortByPriceAsc: SortOption; export declare const sortByPriceDesc: SortOption; export declare const sortByTitleAsc: SortOption; export declare const sortByTitleDesc: SortOption; export declare const sortByRatingAsc: SortOption; export declare const sortByRatingDesc: SortOption; export declare const sortBySalesDesc: SortOption; export declare const sortByVisitsDesc: SortOption; export declare const defaultSortOptions: SortOption[]; export interface SortableVariant extends VariantPricer { is_default?: boolean; media_files?: any[] | null; } export interface SortableProduct { title: string; review_count: number; average_score: number; variants: Array | null; } export declare function sortProducts(env: VariantPriceInfoEnv, sortBy: SortOption | undefined, products: Filtered[]): Filtered[];