import type { TermAggregationResult, StatAggregationResult, RangeAggregationResult } from '@sentecacommerce/sdk';
import { FiltersQuery } from '../../listing/types';
export declare type AggregationTypes = 'ranges' | 'terms' | 'stats';
declare type AggregationDTO = TermAggregationResult | StatAggregationResult | RangeAggregationResult;
export type { TermAggregationResult };
export declare type FormattedAggregationResultType = {
    onClick: () => void;
    selected: boolean;
    data: AggregationDTO;
    label?: string;
    aggregationType?: AggregationTypes;
};
export declare type AggregateResultType = {
    name: string;
    component: string;
    items: FormattedAggregationResultType[];
    type: AggregationTypes;
    selectedCount: number;
    clearAll: () => void;
};
export declare const useAggregateResult: (type: 'category' | 'brand' | 'search' | 'view', aggregates: any[], slug: string, predicate: string, query: FiltersQuery) => {
    isLoading: boolean;
    isIdle: boolean;
    data: AggregateResultType[] | null;
    isFetching: boolean;
};
