import { RangeAggregationResult, TermAggregationResult, RangeAggregation, TermAggregation, StatAggregation } from '@sentecacommerce/sdk';
import { NextRouter } from 'next/router';
import { PredicateType } from './usePredicate';
import { Aggregate } from '../../types';
export declare type AggregationResultType = RangeAggregationResult & TermAggregationResult & RangeAggregationResult;
export declare type AggregateType = TermAggregation & StatAggregation & RangeAggregation;
export declare enum AggregateRequestEnum {
    Filters = "filters",
    Categories = "categories"
}
export declare const useAggregateQuery: (aggregates: Aggregate[], request: AggregateRequestEnum) => import("react-query").QueryResult<import("@sentecacommerce/sdk").CatalogAggregateResponseDTO | undefined, unknown>;
export declare function prepareAggregateQuery({ request, predicate, aggregates, router, postFilter, slug, filterExtension, }: {
    request: AggregateRequestEnum;
    aggregates: Aggregate[];
    router: NextRouter;
    postFilter: string | undefined;
    predicate?: PredicateType;
    filterExtension?: string;
    slug: string;
}): any;
export declare function generateAggregateKey(aggregates?: Aggregate[]): string | undefined;
