import { PrismaService } from "../../../core/database/prisma/prisma.service";
export interface StatsOverview {
    total: {
        count: number;
        open: number;
        inProgress: number;
        resolved: number;
        closed: number;
    };
    today: {
        created: number;
        resolved: number;
        closed: number;
    };
    sla: {
        breached: number;
        breachedRate: number;
    };
    satisfaction: {
        averageRating: number;
        totalRatings: number;
    };
}
export interface StatusDistribution {
    status: string;
    count: number;
    percentage: number;
}
export interface CategoryDistribution {
    categoryId: string;
    categoryName: string;
    count: number;
    percentage: number;
}
export interface TrendData {
    date: string;
    created: number;
    resolved: number;
    closed: number;
}
export declare class StatsService {
    private readonly prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    getOverview(startDate?: Date, endDate?: Date, region?: string, tenantId?: string): Promise<StatsOverview>;
    getStatusDistribution(region?: string, tenantId?: string): Promise<StatusDistribution[]>;
    getCategoryDistribution(region?: string, tenantId?: string): Promise<CategoryDistribution[]>;
    getTrends(days?: number, region?: string, tenantId?: string): Promise<TrendData[]>;
    getAssigneeWorkload(assigneeIds?: string[], region?: string, tenantId?: string): Promise<{
        assigneeId: string | null;
        activeTickets: number;
    }[]>;
}
