import type { SearchSpec, SearchRequest, SearchHelpers } from '@wix/sdk-types'; /** * Creates type-safe search helpers for a specific entity and spec. * These helpers are static and don't require any context. * @template T - Entity type * @template S - Search spec defining filterable/sortable/searchable/aggregatable fields * @template R - Output type from SearchBuilder.build() (defaults to SearchRequest) * @returns SearchHelpers containing SearchBuilder, Filter, Sort, Search, and Aggregation * @example * // Basic usage - build() returns SearchRequest * const helpers = createSearchUtils(); * * // With custom output type - build() returns CustomSearchRequest * const helpers = createSearchUtils(); * * // In module definition * export const products = { * ...createSearchUtils(), * searchProducts: createRESTModule(...), * }; * * // Consumer usage * import { products } from '@wix/stores'; * * const { SearchBuilder, Filter, Sort, Search, Aggregation } = products; * * const request = SearchBuilder() * .withFilter( * Filter.and( * Filter('title').eq('Product'), * Filter('price').gt(50) * ) * ) * .withSearchClause( * SearchParams('dark shoes').fuzzy(true) * ) * .withAggregation( * Aggregation('status_count') * .ofType('VALUE') * .onField('status') * .asValueAggregation() * .sortBy('COUNT', 'DESC') * .limit(10) * ) * .withSorting(Sort('price').desc()) * .withPaging({ limit: 20 }) * .build(); */ export declare function createSearchUtils>(): SearchHelpers;