import { SearchTypes } from "@medusajs/framework/types"; import type { IndexQuery, IndexQueryResult } from "./api-types"; import { IndexPlan } from "./plan"; type RangeFacetRequest = Extract; type StatsFacetRequest = Extract; type ValueFacetRequest = { field: string; type?: "value"; limit?: number; sort?: "count" | "alpha"; query?: string; }; export type FacetQuery = { field: string; request: RangeFacetRequest | ValueFacetRequest | StatsFacetRequest; range?: RangeFacetRequest["ranges"][number]; /** * Medusa Search has no Min/Max aggregates yet, and Cloud accepts only one * aggregate function per request. A numeric stats facet is therefore four * sub-queries: attribute order for min and max, then Count, then Sum. * Dates skip Sum (scalar numeric only) and keep Count so the result still * has a document total. */ stats?: "min" | "max" | "count" | "sum"; is_date?: boolean; query: IndexQuery; }; export declare function buildFacetQueries(input: SearchTypes.ProviderSearchQuery, plan: IndexPlan): FacetQuery[]; export declare function parseFacetResults(queries: FacetQuery[], responses: IndexQueryResult[]): Record | undefined; export {}; //# sourceMappingURL=facets.d.ts.map