import { CreateReferralConfigDto, PaginationAdminListDto, PaginationDto } from './dto/create-refral.dto';
import { DbService } from 'src/db/db.service';
import { CommonService } from 'src/common/common.service';
export declare class RefralsService {
    private readonly model;
    private readonly commonService;
    constructor(model: DbService, commonService: CommonService);
    generateRefCode(): Promise<number>;
    create(createRefralDto: CreateReferralConfigDto): Promise<{
        message: string;
    }>;
    findAll(dto: PaginationAdminListDto): Promise<{
        data: (import("mongoose").FlattenMaps<{
            type: string;
            cus_ref_amount: number;
            driver_ref_amount: number;
            cus_ref_cond_no: number;
            driver_ref_cond_no: number;
            no_of_days_for_cus: number;
            no_of_days_for_driver: number;
            is_active: boolean;
            camp_code: number;
            created_at: number;
            updated_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
        drivers_count: number;
        customers_count: number;
    }>;
    findOne(id: string): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/refral.schema").Refrals, {}, {}> & import("./schema/refral.schema").Refrals & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    setActive(id: string): Promise<{
        message: string;
    }>;
    fetchDiffInDays: (timestampMs: any) => Promise<number>;
    addDaysToDate: (timestampMs: any, numberOfDays: any) => Promise<number>;
    fetchReferrals(user_id: any, scope: any, query: PaginationDto): Promise<{
        data: any[];
        count: number;
    }>;
    fetchRefralStatusAndDatesForCustomer: (user: any, bookingCount: any) => Promise<{
        status: string;
        valid_upto: any;
        pending_no_of_days: any;
        completed_at: any;
        expired_at: number;
    }>;
    fetchRefralStatusAndDatesForDrivers: (user: any, bookingCount: any) => Promise<{
        status: string;
        valid_upto: any;
        pending_no_of_days: any;
        completed_at: any;
        expired_at: any;
    }>;
}
