import { Types, Document, HydratedDocument } from 'mongoose';
export type TripsDocument = HydratedDocument<Trips>;
export declare enum TripStatus {
    CREATED = "CREATED",
    ASSIGNED = "ASSIGNED",
    STARTED = "STARTED",
    REACHED_PICKUP = "REACHED_PICKUP",
    LOADED = "LOADED",
    IN_TRANSIT = "IN_TRANSIT",
    REACHED_DESTINATION = "REACHED_DESTINATION",
    POD_UPLOADED = "POD_UPLOADED",
    COMPLETED = "COMPLETED",
    CANCELLED = "CANCELLED"
}
export declare enum PaymentTerms {
    TO_PAY = "TO_PAY",
    PAID = "PAID",
    TBB = "TBB"
}
export declare enum TripSource {
    DIRECT = "DIRECT",
    VIA_BROKER = "VIA_BROKER"
}
export declare enum VehicleSource {
    OWN = "OWN",
    HIRED = "HIRED"
}
export declare enum CommissionType {
    FLAT = "FLAT",
    PERCENTAGE = "PERCENTAGE"
}
export declare class Trips {
    trip_id: string;
    customer_id: Types.ObjectId;
    payment_terms: PaymentTerms;
    total_invoice_amount: number;
    outstanding_balance: number;
    outstanding_income: number;
    outstanding_gst: number;
    business_id: Types.ObjectId;
    customer_name: string;
    customer_country_code: string;
    customer_phone: string;
    sender_id: Types.ObjectId;
    freight_payer: string;
    sender_name: string;
    sender_country_code: string;
    sender_phone_no: string;
    biller_id: Types.ObjectId;
    biller_name: string;
    biller_country_code: string;
    biller_phone: string;
    biller_gst_number: string;
    trip_source: string;
    broker_id: Types.ObjectId;
    gross_trip_amount: number;
    commission_type: string;
    commission_value: number;
    commission_amount: number;
    vehicle_source: string;
    hired_vehicle_id: {
        _id: Types.ObjectId | string;
        transporter_name: string;
        country_code: string;
        phone_number: string;
        truck_number: string;
    };
    hired_vehicle_amount: number;
    pickup_location: string;
    pickup_address: string;
    pickup_latitude: number;
    pickup_longitude: number;
    delivery_location: string;
    destination_city: string;
    delivery_address: string;
    delivery_latitude: number;
    delivery_longitude: number;
    pickup_property_number: string;
    dropoff_property_number: string;
    description: string;
    hsn_code: string;
    material_type: string;
    eway_bill_number: string;
    quantity: number;
    vehicle_type: string;
    freight_amount: number;
    distance: number;
    trip_start_date: number;
    delivery_estimate_date: number;
    status: TripStatus;
    vehicle_id: {
        _id: Types.ObjectId | string;
        registration_number: string;
        model: string;
        make_brand: string;
    };
    driver_id: {
        _id: Types.ObjectId | string;
        name: string;
        phone_no: string;
        country_code: string;
        profile_pic: string;
        payment_structure?: string;
    };
    pod_url: string;
    pdf_url: string;
    loaded_invoice_url: string;
    route_map_snapshot_url: string;
    trip_otp: string;
    trip_otp_verified: boolean;
    live_location: {
        type: string;
        coordinates: number[];
    };
    live_location_updated_at: number;
    live_latitude: number;
    live_longitude: number;
    route_path: {
        latitude: number;
        longitude: number;
        timestamp: number;
    }[];
    created_by: {
        _id: Types.ObjectId;
        name: string;
        user_type: string;
        profile_pic: string;
        email: string;
        phone_no: string;
    };
    trip_advanced_to_driver: number;
    route_advance: number;
    per_km_earning: number;
    net_payable_to_reserve: number;
    is_reserve_credited: boolean;
    is_reserve_jama_credited: boolean;
    total_approved_expense: number;
    total_pending_expense: number;
    total_rejected_expense: number;
    net_profit: number;
    advance_remaining: number;
    driver_incentive: number;
    is_deleted: boolean;
    is_demo: boolean;
    is_gst: boolean;
    gst_amount: number;
    created_at: number;
    completed_at: number;
    started_at: number;
    updated_at: number;
    expenses: Types.ObjectId[];
    admin_expense: number;
    accept_advance: boolean;
    cancel_reason: string;
    sender_gst_number: string;
    receiver_gst_number: string;
    refunded_amount: number;
}
export declare const TripSchema: import("mongoose").Schema<Trips, import("mongoose").Model<Trips, any, any, any, Document<unknown, any, Trips, any> & Trips & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Trips, Document<unknown, {}, import("mongoose").FlatRecord<Trips>, {}> & import("mongoose").FlatRecord<Trips> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
