import { Types } from 'mongoose';
import { ModelsService } from 'src/models/models.service';
import { CommonService } from 'src/common/common.service';
import { FinancialCalculationService } from './services/financial-calculation.service';
import { ReportsQueryDto, ReportsQueryWithPageDto } from './dto/reports-query.dto';
export interface DetailedTransaction {
    date: number;
    type: 'Freight Received' | 'Payroll' | 'Maintenance' | 'Trip Expense' | 'Fuel' | 'Toll/FASTag';
    reference: string;
    description: string;
    amount: number;
}
export declare class AccountsService {
    private readonly model;
    private readonly commonService;
    private readonly financialCalc;
    constructor(model: ModelsService, commonService: CommonService, financialCalc: FinancialCalculationService);
    resolveBusinessId(user: any): Types.ObjectId;
    resolveDateRange(query: ReportsQueryDto): {
        start: number;
        end: number;
    };
    getSummary(user: any, query: ReportsQueryDto): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    getRoutePerformance(businessId: Types.ObjectId, start: number, end: number, limit?: number): Promise<{
        route: string;
        trips: any;
        delivered: any;
        deliveryRate: number;
    }[]>;
    getTripLedger(user: any, query: ReportsQueryWithPageDto): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getDetailedTransactions(businessId: Types.ObjectId, start: number, end: number): Promise<{
        transactions: DetailedTransaction[];
        rawRows: any;
    }>;
}
