import { BaseTenantService } from '@/common/base/service/base-crud.service';
import { KpiDaily } from './entities/kpi-daily.entity';
import { TenantConnectionService } from '../tenant/tenant-connection.service';
import { KpiRankingDto } from './dto/ranking-kpi.dto';
import { KpiRangeDto } from './dto/range-kpi.dto';
import { KpiMonthDto } from './dto/month-kpi.dto';
import { KpiTargetListDto } from './dto/kpi-target.dto';
import { KpiCompareDto } from './dto/compare-kpi.dto';
export declare class KpiService extends BaseTenantService<KpiDaily> {
    protected tenantConnectionService: TenantConnectionService;
    protected entity: typeof KpiDaily;
    constructor(tenantConnectionService: TenantConnectionService);
    private getRepo;
    getKpiReport(dto: KpiRangeDto, req: any, isSuperAdmin: boolean): Promise<never[] | {
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
    }>;
    getReport(dto: KpiMonthDto, req: any, isSuperAdmin: boolean): Promise<never[] | {
        total: number;
        totalRevenue: any;
        totalTarget: any;
        data: any[];
        current_page?: undefined;
        first_page_url?: undefined;
        from?: undefined;
        last_page?: undefined;
        last_page_url?: undefined;
        links?: undefined;
        next_page_url?: undefined;
        path?: undefined;
        per_page?: undefined;
        prev_page_url?: undefined;
        to?: undefined;
    } | {
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
        totalRevenue?: undefined;
        totalTarget?: undefined;
    }>;
    compareMonth(dto: KpiCompareDto, req: any, isSuperAdmin: boolean): Promise<never[] | {
        period: "custom" | "today" | "this_week" | "this_month";
        currentRange: {
            from: string;
            to: string;
        };
        prevRange: {
            from: string;
            to: string;
        };
        totalCurrentRevenue: number;
        totalPrevRevenue: number;
        revenueByUser: {
            userId: any;
            username: any;
            email: any;
            phone: any;
            avatar: any;
            currentRevenue: number;
            prevRevenue: number;
        }[];
        data?: undefined;
        current_page?: undefined;
        first_page_url?: undefined;
        from?: undefined;
        last_page?: undefined;
        last_page_url?: undefined;
        links?: undefined;
        next_page_url?: undefined;
        path?: undefined;
        per_page?: undefined;
        prev_page_url?: undefined;
        to?: undefined;
        total?: undefined;
    } | {
        period: "custom" | "today" | "this_week" | "this_month";
        currentRange: {
            from: string;
            to: string;
        };
        prevRange: {
            from: string;
            to: string;
        };
        data: {
            userId: any;
            username: any;
            email: any;
            phone: any;
            avatar: any;
            currentRevenue: number;
            prevRevenue: number;
        }[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
        totalCurrentRevenue?: undefined;
        totalPrevRevenue?: undefined;
        revenueByUser?: undefined;
    } | {
        totalCurrentRevenue: any;
        totalPrevRevenue: any;
        data: any[];
        period?: undefined;
        currentRange?: undefined;
        prevRange?: undefined;
        revenueByUser?: undefined;
        current_page?: undefined;
        first_page_url?: undefined;
        from?: undefined;
        last_page?: undefined;
        last_page_url?: undefined;
        links?: undefined;
        next_page_url?: undefined;
        path?: undefined;
        per_page?: undefined;
        prev_page_url?: undefined;
        to?: undefined;
        total?: undefined;
    } | {
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
        period?: undefined;
        currentRange?: undefined;
        prevRange?: undefined;
        totalCurrentRevenue?: undefined;
        totalPrevRevenue?: undefined;
        revenueByUser?: undefined;
    }>;
    ranking(dto: KpiRankingDto, req: any, isSuperAdmin: boolean): Promise<never[] | {
        period: "custom" | "today" | "this_week" | "this_month";
        currentRange: {
            from: string;
            to: string;
        };
        totalRevenue: any;
        data: any[];
        current_page?: undefined;
        first_page_url?: undefined;
        from?: undefined;
        last_page?: undefined;
        last_page_url?: undefined;
        links?: undefined;
        next_page_url?: undefined;
        path?: undefined;
        per_page?: undefined;
        prev_page_url?: undefined;
        to?: undefined;
        total?: undefined;
    } | {
        period: "custom" | "today" | "this_week" | "this_month";
        currentRange: {
            from: string;
            to: string;
        };
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
        totalRevenue?: undefined;
    } | {
        totalRevenue: any;
        data: any[];
        period?: undefined;
        currentRange?: undefined;
        current_page?: undefined;
        first_page_url?: undefined;
        from?: undefined;
        last_page?: undefined;
        last_page_url?: undefined;
        links?: undefined;
        next_page_url?: undefined;
        path?: undefined;
        per_page?: undefined;
        prev_page_url?: undefined;
        to?: undefined;
        total?: undefined;
    } | {
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
        period?: undefined;
        currentRange?: undefined;
        totalRevenue?: undefined;
    }>;
    private getPrevMonth;
    getKpiTargetList(dto: KpiTargetListDto, req: any, isSuperAdmin: boolean): Promise<never[] | {
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
    }>;
    getKpiListDaily(dto: KpiRangeDto, req: any, isSuperAdmin: boolean): Promise<never[] | {
        totalRevenue: any;
        revenueByUser: unknown[];
        data: any[];
        current_page?: undefined;
        first_page_url?: undefined;
        from?: undefined;
        last_page?: undefined;
        last_page_url?: undefined;
        links?: undefined;
        next_page_url?: undefined;
        path?: undefined;
        per_page?: undefined;
        prev_page_url?: undefined;
        to?: undefined;
        total?: undefined;
    } | {
        data: any[];
        current_page: number;
        first_page_url: string;
        from: number | null;
        last_page: number;
        last_page_url: string;
        links: {
            url: string;
            label: string;
            active: boolean;
        }[];
        next_page_url: string | null;
        path: string;
        per_page: number;
        prev_page_url: string | null;
        to: number | null;
        total: number;
        totalRevenue?: undefined;
        revenueByUser?: undefined;
    }>;
}
