import { UserRole } from '@prisma/client';
import { DashboardService } from './dashboard.service';
import { Request } from 'express';
export declare class DashboardController {
    private readonly dashboard;
    constructor(dashboard: DashboardService);
    summary(): Promise<{
        shops: {
            total: number;
            approved: number;
            pending: number;
            rejected: number;
            active: number;
            inactive: number;
        };
        users: {
            total: number;
            active: number;
            inactive: number;
            customers: number;
            admins: number;
            subadmins: number;
            superadmins: number;
        };
        sales: {
            completedCount: number;
            amountTotal: number;
            discountTotal: number;
            loyaltyEarnedTotal: number;
            loyaltyRedeemedTotal: number;
        };
        coupons: {
            total: number;
            draft: number;
            active: number;
            expired: number;
            customerCouponsTotal: number;
            customerCouponsAssigned: number;
            customerCouponsRedeemed: number;
            customerCouponsExpired: number;
            customersWithCoupons: number;
            salesWithCoupon: number;
        };
    }>;
    shopAnalytics(req: Request & {
        user?: {
            id: string;
            role: UserRole;
            shopId?: string | null;
        };
    }, from?: string, to?: string, shopId?: string): Promise<{
        shopId: string;
        range: {
            from: Date;
            to: Date;
        };
        prevRange: {
            from: Date;
            to: Date;
        };
        kpis: {
            revenue: {
                current: number;
                prev: number;
            };
            customers: {
                total: number;
                new: number;
                newPrev: number;
            };
            cashiPointsCredited: {
                current: number;
                prev: number;
            };
            cashiCoinsRewarded: {
                current: any;
                prev: any;
            };
            couponsRedeemed: {
                current: number;
                prev: number;
            };
        };
    }>;
}
