import { CreateCompanyDto } from './dto/create-company.dto';
import { AddCompanyRiderRequestDto, BlockUnblockStaffDto, CreateCompanyStaffDto, DashboardCardDto, GetCompanyStaffQueryDto, ListCompanyBookingDto, ListCompanyDto, UpdateCompanyDto, UpdateCompanyStaffDto } from './dto/update-company.dto';
import { DbService } from 'src/db/db.service';
import { CompanyRoleType } from './schema/company.schema';
import { Types } from 'mongoose';
export declare class CompanyService {
    private readonly model;
    constructor(model: DbService);
    private getDateRange;
    getDashbord: (req: any, dto: DashboardCardDto) => Promise<{
        data: any;
    }>;
    create(createCompanyDto: CreateCompanyDto): {
        message: string;
        data: Promise<import("mongoose").Document<unknown, {}, import("./schema/company.schema").Company, {}, {}> & import("./schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        }>;
    };
    findAll(dto: ListCompanyDto): Promise<{
        message: string;
        data: (import("mongoose").Document<unknown, {}, import("./schema/company.schema").Company, {}, {}> & import("./schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        pagination: {
            total: number;
            page: string | number;
            limit: string | number;
            totalPages: number;
            activeCount: number;
            blockedCount: number;
            deletedCount: number;
        };
    }>;
    update(id: string, updateCompanyDto: UpdateCompanyDto): Promise<{
        message: string;
        data: import("mongoose").Document<unknown, {}, import("./schema/company.schema").Company, {}, {}> & import("./schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    request_rider: (req: any, data: AddCompanyRiderRequestDto) => Promise<{
        message: string;
    }>;
    create_client: (req: any, data: AddCompanyRiderRequestDto) => Promise<{
        message: string;
    }>;
    createCompanyStaff(req: any, data: CreateCompanyStaffDto): Promise<{
        message: string;
        data: import("mongoose").Document<unknown, {}, import("./schema/company.schema").Company, {}, {}> & import("./schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getCompanyStaffList(req: any, query: GetCompanyStaffQueryDto): Promise<{
        message: string;
        data: (import("mongoose").FlattenMaps<{
            customer_id: string;
            role_type: CompanyRoleType;
            name: string;
            email: string;
            phone: string;
            country_code: string;
            image: string;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            temp_email: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            address: string;
            temp_phone_otp_at: number;
            is_notification: boolean;
            timezone: string;
            preferred_currency: string;
            preferred_language: string;
            currency_symbol: string;
            contact_person: string;
            credit_limit_assign?: number;
            credit_limit?: number;
            wallet_balance: number;
            hold_balance: number;
            pending_amount: number;
            billing_duration?: import("./schema/company.schema").BillingDuration;
            location: {
                type: string;
                coordinates: number[];
                name: string;
            };
            heading: number;
            company_id: string;
            current_booking: string;
            permissions: string[];
            is_block: boolean;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getStaffById(id: string): Promise<{
        message: string;
        data: import("mongoose").FlattenMaps<{
            customer_id: string;
            role_type: CompanyRoleType;
            name: string;
            email: string;
            phone: string;
            country_code: string;
            image: string;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            temp_email: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            address: string;
            temp_phone_otp_at: number;
            is_notification: boolean;
            timezone: string;
            preferred_currency: string;
            preferred_language: string;
            currency_symbol: string;
            contact_person: string;
            credit_limit_assign?: number;
            credit_limit?: number;
            wallet_balance: number;
            hold_balance: number;
            pending_amount: number;
            billing_duration?: import("./schema/company.schema").BillingDuration;
            location: {
                type: string;
                coordinates: number[];
                name: string;
            };
            heading: number;
            company_id: string;
            current_booking: string;
            permissions: string[];
            is_block: boolean;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    updateStaff(id: string, data: UpdateCompanyStaffDto): Promise<{
        message: string;
        data: import("mongoose").FlattenMaps<{
            customer_id: string;
            role_type: CompanyRoleType;
            name: string;
            email: string;
            phone: string;
            country_code: string;
            image: string;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            temp_email: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            address: string;
            temp_phone_otp_at: number;
            is_notification: boolean;
            timezone: string;
            preferred_currency: string;
            preferred_language: string;
            currency_symbol: string;
            contact_person: string;
            credit_limit_assign?: number;
            credit_limit?: number;
            wallet_balance: number;
            hold_balance: number;
            pending_amount: number;
            billing_duration?: import("./schema/company.schema").BillingDuration;
            location: {
                type: string;
                coordinates: number[];
                name: string;
            };
            heading: number;
            company_id: string;
            current_booking: string;
            permissions: string[];
            is_block: boolean;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    blockUnblockStaff(id: string, data: BlockUnblockStaffDto): Promise<{
        message: string;
        data: import("mongoose").FlattenMaps<{
            customer_id: string;
            role_type: CompanyRoleType;
            name: string;
            email: string;
            phone: string;
            country_code: string;
            image: string;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            temp_email: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            address: string;
            temp_phone_otp_at: number;
            is_notification: boolean;
            timezone: string;
            preferred_currency: string;
            preferred_language: string;
            currency_symbol: string;
            contact_person: string;
            credit_limit_assign?: number;
            credit_limit?: number;
            wallet_balance: number;
            hold_balance: number;
            pending_amount: number;
            billing_duration?: import("./schema/company.schema").BillingDuration;
            location: {
                type: string;
                coordinates: number[];
                name: string;
            };
            heading: number;
            company_id: string;
            current_booking: string;
            permissions: string[];
            is_block: boolean;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    removeStaff(id: string): Promise<{
        message: string;
        status: boolean;
    }>;
    getCompanyBookings(req: any, query: ListCompanyBookingDto): Promise<{
        message: string;
        data: any;
        pagination: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getCompanyBookingDetails(req: any, companyId: string): Promise<{
        message: string;
        data: any;
    }>;
    getInvoices: (req: any, filters: ListCompanyBookingDto) => Promise<{
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    updateCreaditLimitByAdmin: (company_id: string, credit_limit: number) => Promise<{
        message: string;
        data: import("mongoose").Document<unknown, {}, import("./schema/company.schema").Company, {}, {}> & import("./schema/company.schema").Company & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
}
