import { Types } from 'mongoose';
import { Document, HydratedDocument } from 'mongoose';
export type UsersDocument = HydratedDocument<Users>;
export declare enum UserType {
    SUPER_ADMIN = "SUPER_ADMIN",
    ADMIN_STAFF = "ADMIN_STAFF",
    TRANSPORT_ADMIN = "TRANSPORT_ADMIN",
    TRANSPORT_STAFF = "TRANSPORT_STAFF",
    DRIVER = "DRIVER"
}
export declare enum RevenueModel {
    COMMISSION = "COMMISSION",
    SUBSCRIPTION = "SUBSCRIPTION"
}
export declare enum Language {
    EN = "en",
    HI = "hi"
}
export declare enum UserStatus {
    ACTIVE = "active",
    IN_ACTIVE = "in_active",
    BUSY = "busy",
    OFF_DUTY = "off_duty",
    EXITED = "exited",
    ON_LEAVE = "on_leave"
}
export declare enum DriverPaymentStructure {
    FIXED_SALARY = "FIXED_SALARY",
    PER_KM_RESERVE_HOLD = "PER_KM_RESERVE_HOLD",
    FIXED_PLUS_DAILY_ALLOWANCE = "FIXED_PLUS_DAILY_ALLOWANCE"
}
export declare class Users extends Document {
    phone_no: string;
    country_code: string;
    is_phone_verified: boolean;
    phone_verified_at: number;
    email: string;
    username: string;
    password: string;
    is_email_verified: boolean;
    email_verified_at: number;
    profile_pic: string;
    name: string;
    socket_id: string;
    is_online: boolean;
    customer_id: string;
    trip_id: string;
    current_trip: {
        _id: Types.ObjectId;
        driver_id: Types.ObjectId;
        vehicle_id: Types.ObjectId;
        status: string;
        updated_at: number;
    };
    user_type: UserType;
    admin_id: Types.ObjectId;
    module_access: any[];
    max_vehicle_count: number;
    created_at: number;
    updated_at: number;
    razorpay_customer_id: string;
    gst_number: string;
    language: Language;
    is_subscription_active: boolean;
    assigned_plan: any;
    is_profile_complete: boolean;
    social_type: string;
    social_id: string;
    business_id: Types.ObjectId;
    is_deleted: boolean;
    is_demo: boolean;
    status: string;
    blood_group: string;
    address: string;
    aadhaar_number: string;
    emergency_contact_name: string;
    emergency_contact_number: string;
    emergency_country_code: string;
    driving_license_number: string;
    license_expiry_date: number;
    aadhaar_card_document: string;
    aadhaar_card_document_back: string;
    driving_license_document: string;
    driving_license_document_back: string;
    salary: number;
    advance_balance: number;
    total_advance: number;
    penalty_balance: number;
    total_penalty: number;
    trip_amount_balance: number;
    date_of_joining: number;
    date_of_salary: number;
    payment_structure: DriverPaymentStructure;
    per_km_rate: number;
    reserve_balance: number;
    total_reserve_accumulated: number;
    total_reserve_paid: number;
    monthly_allowance: number;
    daily_allowance_rate: number;
    total_allowance_taken_this_cycle: number;
    allowance_cycle_start_date: number;
    salary_structure_changed_at: number;
    salary_history: {
        salary: number;
        payment_structure: string;
        per_km_rate: number;
        monthly_allowance: number;
        salary_revisions?: {
            salary: number;
            new_salary: number;
            changed_at: number;
            effective_from?: number;
        }[];
        effective_from: number;
        effective_to: number;
    }[];
    salary_revisions: {
        salary: number;
        new_salary: number;
        changed_at: number;
        effective_from?: number;
    }[];
    date_of_exit: number;
    final_settlement_details: any;
    current_location: {
        latitude: number;
        longitude: number;
        updated_at: number;
    };
}
export declare const UserSchema: import("mongoose").Schema<Users, import("mongoose").Model<Users, any, any, any, Document<unknown, any, Users, any> & Users & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Users, Document<unknown, {}, import("mongoose").FlatRecord<Users>, {}> & import("mongoose").FlatRecord<Users> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
