import { Resource } from "../resource";
import { APIBaseRecommendationAggregate, APIRecommendationSummary, StoreBaseRecommendationAggregate, StoreRecommendationSummary } from "./interfaces";
export declare class BaseRecommendationAggregate extends Resource {
    slug: string;
    total: number;
    recommendations: StoreRecommendationSummary[];
    constructor(slug: string, total: number, recommendations: StoreRecommendationSummary[]);
    static deserializeRecommendationSummary(recommendationSummary: APIRecommendationSummary): StoreRecommendationSummary;
    static serializeRecommendationSummary(recommendationSummary: StoreRecommendationSummary): APIRecommendationSummary;
    /**
     * Convert into a JSON serializable object for the API server.
     */
    serializeAPI(): APIBaseRecommendationAggregate;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The recommendation data from the API server.
     */
    deserializeAPI(data: APIBaseRecommendationAggregate): void;
    /**
     * Serialize the recommendation into a format for storing in the Redux store.
     */
    serializeRedux(): StoreBaseRecommendationAggregate;
    static reduxFactory(data: StoreBaseRecommendationAggregate): BaseRecommendationAggregate;
    static apiFactory(data: APIBaseRecommendationAggregate): BaseRecommendationAggregate;
}
