import { OrderStatus, TransactionBaseService } from "@medusajs/medusa";
type VariantsCountPopularity = {
    sum: string;
    productId: string;
    variantId: string;
    productTitle: string;
    variantTitle: string;
    thumbnail: string;
};
export type VariantsCountPopularityResult = {
    dateRangeFrom?: number;
    dateRangeTo?: number;
    dateRangeFromCompareTo?: number;
    dateRangeToCompareTo?: number;
    current: VariantsCountPopularity[];
    previous: VariantsCountPopularity[];
};
type OutOfTheStockVariantsCount = {
    productId: string;
    variantId: string;
    productTitle: string;
    variantTitle: string;
    thumbnail: string;
};
type OutOfTheStockVariantsCountResult = {
    dateRangeFrom?: number;
    dateRangeTo?: number;
    dateRangeFromCompareTo?: number;
    dateRangeToCompareTo?: number;
    current: OutOfTheStockVariantsCount[];
};
export default class ProductsAnalyticsService extends TransactionBaseService {
    private readonly TOP_LIMIT;
    constructor(container: any);
    getTopVariantsByCount(orderStatuses: OrderStatus[], from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<VariantsCountPopularityResult>;
    getTopReturnedVariantsByCount(from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<VariantsCountPopularityResult>;
    getProductsSoldCount(orderStatuses: OrderStatus[], from?: Date, to?: Date, dateRangeFromCompareTo?: Date, dateRangeToCompareTo?: Date): Promise<VariantsCountPopularityResult>;
    getOutOfTheStockVariants(limit?: number): Promise<OutOfTheStockVariantsCountResult>;
}
export {};
