import { Repository } from 'typeorm';
import { Transaction } from '../transactions/entities/transaction.entity';
import { Campaign, CampaignStatus } from '../campaigns/entities/campaign.entity';
import { Contestant } from '../contestants/entities/contestant.entity';
export declare class DashboardService {
    private transactionsRepository;
    private campaignsRepository;
    private contestantsRepository;
    constructor(transactionsRepository: Repository<Transaction>, campaignsRepository: Repository<Campaign>, contestantsRepository: Repository<Contestant>);
    getStats(organizationId: string): Promise<{
        totalRevenue: any;
        totalVotes: any;
        activeCampaigns: number;
        monthRevenue: any;
    }>;
    getRevenueChart(organizationId: string, days?: number): Promise<{
        date: string;
        revenue: number;
        votes: number;
    }[]>;
    getRecentActivity(organizationId: string, limit?: number): Promise<{
        id: string;
        voter_name: string;
        contestant_name: string;
        campaign_title: string;
        votes: number;
        amount: number;
        paid_at: Date;
    }[]>;
    getCampaignStats(campaignId: string, organizationId: string): Promise<{
        totalVotes: any;
        totalRevenue: any;
        topContestant: {
            name: string;
            votes: number;
        };
        contestantsCount: number;
    }>;
    getCampaignAnalytics(campaignId: string, organizationId: string, days?: number): Promise<{
        campaign: {
            id: string;
            title: string;
            slug: string;
            status: CampaignStatus;
            vote_price: number;
            starts_at: Date;
            ends_at: Date;
        };
        summary: {
            totalVotes: number;
            totalRevenue: number;
            totalTransactions: number;
            totalContestants: number;
            avgVotesPerTransaction: number;
            avgTransactionValue: number;
        };
        leaderboard: {
            rank: number;
            id: string;
            name: string;
            photo_url: string;
            votes: number;
            percentage: string;
        }[];
        chartData: {
            date: string;
            votes: number;
            revenue: number;
            transactions: number;
        }[];
        hourlyData: {
            hour: number;
            label: string;
            count: number;
        }[];
        voteDistribution: {
            id: string;
            name: string;
            votes: number;
            percentage: string;
        }[];
        recentTransactions: {
            id: string;
            voter_name: string;
            contestant_name: string;
            votes: number;
            amount: number;
            paid_at: Date;
        }[];
    }>;
}
