import { Request } from 'express';
import { DashboardService } from './dashboard.service';
import { DashboardQueryDto } from './dto/dashboard-query.dto';
export declare class DashboardController {
    private readonly service;
    constructor(service: DashboardService);
    getStats(query: DashboardQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        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;
    }>>;
    getSalesHeadStats(query: DashboardQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        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;
        };
    }>>;
    getSalesTeamStats(query: DashboardQueryDto, req: Request): Promise<import("../../common/responses/api-response").ApiResponse<{
        my_open_queries: number;
        my_pending_quotes: number;
        my_mtd_conversions: number;
        my_hot_leads: number;
        my_followups_today: null;
    }>>;
    getOpsStats(query: DashboardQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        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(req: Request, query: DashboardQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        my_today_services: number;
        my_tomorrow_services: number;
        vouchers_to_send: null;
        driver_briefings_due: null;
        supplier_confirmations_pending: null;
    }>>;
}
