import { ModelsService } from '../models/models.service';
import { CommonService } from '../common/common.service';
import { CreateBrokerDto, UpdateBrokerDto } from './dto/broker.dto';
export declare class BrokersService {
    private readonly models;
    private readonly commonService;
    constructor(models: ModelsService, commonService: CommonService);
    private assertPhoneNotTaken;
    createBroker(createBrokerDto: CreateBrokerDto, user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    getBrokers(user: any, page?: number, limit?: number, search?: string, status?: string): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getBrokerById(id: string, user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    updateBroker(id: string, updateBrokerDto: UpdateBrokerDto, user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    deleteBroker(id: string, user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    activateBroker(id: string, user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private computeBrokerStats;
    getBrokerStats(id: string, user: any): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    getBrokerLedger(id: string, user: any, page?: number, limit?: number): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getBrokerReport(user: any, fromDate?: string, toDate?: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
}
