import { BooleanField, TextField, NumberField } from '@sentecacommerce-theme/base';
export declare type FiltersQuery = {
    storeKey?: string;
    currencyCode?: string;
    languageCode?: string;
    priceListKey?: string;
    time?: number;
    merchantKey?: string;
    expand?: string;
    project?: string;
    filter?: string;
    fuzzy?: boolean;
    fuzzyLevel?: string;
    count?: boolean;
    limit?: number;
    offset?: number;
    sort?: string;
};
export declare enum ListingTypesEnum {
    Category = "category",
    Brand = "brand",
    View = "view",
    Search = "text",
    Collection = "collection",
    AttrPage = "attribute page"
}
export declare enum GenderNamesEnum {
    Men = "\u041C\u044A\u0436\u0435",
    Women = "\u0416\u0435\u043D\u0438",
    Kids = "\u0414\u0435\u0446\u0430"
}
export declare enum AggregationTypeEnum {
    Terms = "terms",
    Ranges = "ranges",
    Stats = "stats"
}
export declare enum ComponentTypeEnum {
    Text = "text",
    TextWithLink = "text-with-link",
    Checkbox = "checkbox",
    Color = "color",
    Autocomplete = "autocomplete",
    AttributeCheckbox = "attribute-checkbox",
    Dropdown = "dropdown",
    RangeCheckbox = "range-checkbox",
    RangeSlider = "range-slider"
}
export declare type Aggregate = {
    label: TextField;
    aggregationType: AggregationTypeEnum;
    aggregationDefinition: TextField;
    filterDefinition: TextField;
    order: NumberField;
    collapsed?: BooleanField;
    component: ComponentTypeEnum;
};
export declare type ListingPageSortOption = {
    key: TextField;
    label: TextField;
};
export interface DefaultListingPageProps {
    type: ListingTypesEnum;
    seoAggregates?: Aggregate;
    aggregates?: Aggregate[];
    defaultSortKey: TextField;
    categoryTreeConfig?: Aggregate;
    sortOptions: ListingPageSortOption[];
    productsPerPage?: NumberField;
    filterExtension?: TextField;
}
