import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { QueryEntity } from '../../entities/query.entity';
import { BookingEntity } from '../../entities/booking.entity';
import { QueryQuoteEntity } from '../../entities/query-quote.entity';
import { DriverEntity } from '../../entities/driver.entity';
import { AuditLogEntity } from '../../entities/audit-log.entity';
import { UserEntity } from '../../entities/user.entity';
import { UserReportingService } from '../user/user-reporting.service';
export declare class DashboardService {
    private readonly queryRepo;
    private readonly bookingRepo;
    private readonly quoteRepo;
    private readonly driverRepo;
    private readonly auditRepo;
    private readonly userRepo;
    private readonly cls;
    private readonly userReporting;
    constructor(queryRepo: Repository<QueryEntity>, bookingRepo: Repository<BookingEntity>, quoteRepo: Repository<QueryQuoteEntity>, driverRepo: Repository<DriverEntity>, auditRepo: Repository<AuditLogEntity>, userRepo: Repository<UserEntity>, cls: ClsService, userReporting: UserReportingService);
    private getTenantId;
    private destSql;
    private queryVisibilityRawSql;
    getStats(startDate?: string, endDate?: string, destinationId?: string): Promise<{
        total_queries: number;
        active_bookings: number;
        active_bookings_upcoming: number;
        active_bookings_ongoing: number;
        revenue: number;
        upcoming_trips: number;
        available_drivers: number;
        query_stage_counts: Record<string, number>;
        upcoming_bookings: {
            id: string;
            booking_number: string;
            guest_name: string;
            destination_name: string;
            start_date: string;
            end_date: string;
            status: import("../../entities").BookingStatus;
        }[];
        recent_activity: {
            id: string;
            entity_type: string;
            entity_id: string;
            action: string;
            performer_name: string | null;
            created_at: Date;
            entity_number: string | null;
            guest_name: string | null;
        }[];
        special_activity_bookings: {
            booking_id: string;
            booking_number: string;
            guest_name: string | null;
            activity_name: string;
            activity_date: string;
            ticket_status: string;
        }[];
        conversion_pct: number | null;
        margin_pct: number | null;
    }>;
    private getOverallConversion;
    private getOverallMargin;
    private countQueries;
    private countActiveBookings;
    private sumRevenue;
    private getUpcomingTrips;
    private countAvailableDrivers;
    private getQueryStageCounts;
    private getRecentActivity;
    getSalesHeadStats(startDate?: string, endDate?: string, destinationId?: string): Promise<{
        funnel_by_rep: {
            user_id: string;
            user_name: string;
            queries: number;
            quotes: number;
            bookings: number;
            conversion_pct: number | null;
        }[];
        aging_queries: {
            over_3_days: number;
            over_7_days: number;
        };
        source_revenue_mix: {
            source_id: any;
            source_name: any;
            revenue: number;
            bookings: number;
        }[];
        quote_turnaround: {
            median_seconds: number | null;
            p95_seconds: number | null;
            sample_size: number;
        };
    }>;
    private getFunnelByRep;
    private getAgingQueries;
    private getSourceRevenueMix;
    private getQuoteTurnaround;
    getSalesTeamStats(userId: string, startDate?: string, endDate?: string, destinationId?: string): Promise<{
        my_open_queries: number;
        my_pending_quotes: number;
        my_mtd_conversions: number;
        my_hot_leads: number;
        my_followups_today: null;
    }>;
    private countMyOpenQueries;
    private countMyPendingQuotes;
    private countMyConversions;
    private countMyHotLeads;
    getOpsStats(destinationId?: string): Promise<{
        today_movements: number;
        unassigned_bookings: number;
        tomorrow_services: number;
        available_drivers: number;
        special_activity_bookings: {
            booking_id: string;
            booking_number: string;
            guest_name: string | null;
            activity_name: string;
            activity_date: string;
            ticket_status: string;
        }[];
        service_conflicts: null;
        voucher_dispatch_pending: null;
        supplier_confirmations_pending: null;
    }>;
    getTripCoordinatorStats(userId: string, destinationId?: string): Promise<{
        my_today_services: number;
        my_tomorrow_services: number;
        vouchers_to_send: null;
        driver_briefings_due: null;
        supplier_confirmations_pending: null;
    }>;
    private getSpecialActivityBookings;
    private countMovementsOnDate;
    private countMyMovementsOnDate;
    private countUnassignedUpcoming;
}
