import { CatalogAggregateResponseDTO, CategoryDTO, BrandDTO } from '@sentecacommerce/sdk';
import { QueryCache, QueryResult } from 'react-query';
import { FiltersQuery } from '../../listing/types';
declare type SearchResultDTO = any;
declare type CatalogApiType = {
    readonly useSEOAggregate: (type: 'terms' | 'ranges' | 'stats', aggBy: string, value?: any, slug?: string, query?: FiltersQuery) => QueryResult<CatalogAggregateResponseDTO, unknown>;
    readonly usePrefetchSEOAggregate: (queryCache: QueryCache, type: 'terms' | 'ranges' | 'stats', aggBy: string, value: any, slug: string, query: FiltersQuery) => void;
    readonly useAggregate: (type: 'category' | 'brand' | 'search' | 'view', aggregates: any[], slug: string, predicate: string, query: FiltersQuery) => QueryResult<CatalogAggregateResponseDTO, unknown>;
    readonly useFilter: (query: FiltersQuery) => QueryResult<SearchResultDTO, unknown>;
    readonly useBrand: (slug: string, query: FiltersQuery, predicate: BrandDTO | undefined, filterZeroQty?: string) => QueryResult<SearchResultDTO, unknown>;
    readonly usePrefetchBrand: (queryCache: QueryCache, slug: string, query: FiltersQuery, predicate: BrandDTO | undefined, filterZeroQty?: string) => void;
    readonly useCategory: (slug: string, query: FiltersQuery, predicate: CategoryDTO | undefined, filterZeroQty?: string) => QueryResult<SearchResultDTO, unknown>;
    readonly usePrefetchCategory: (queryCache: QueryCache, slug: string, query: FiltersQuery, predicate: CategoryDTO | undefined) => void;
    readonly useView: (slug: string, query: FiltersQuery, predicate: any) => QueryResult<SearchResultDTO, unknown>;
    readonly usePrefetchView: (queryCache: QueryCache, slug: string, query: FiltersQuery, predicate: any) => void;
    readonly useSearch: (searchString: string, query: FiltersQuery) => QueryResult<SearchResultDTO, unknown>;
    readonly usePrefetchSearch: (queryCache: QueryCache, searchString: string, query: FiltersQuery) => QueryResult<SearchResultDTO, unknown>;
    readonly getCatalogSearchResult: any;
};
export declare const CatalogApiFactory: {
    getInstance: () => CatalogApiType;
};
export declare const catalogApi: CatalogApiType;
export {};
