import { Types, Document, HydratedDocument } from 'mongoose';
export type DriverPenaltyDocument = HydratedDocument<DriverPenalty>;
export declare enum PenaltyCategory {
    TRAFFIC_CHALLAN = "TRAFFIC_CHALLAN",
    VEHICLE_DAMAGE = "VEHICLE_DAMAGE",
    GOODS_DAMAGE_OR_SHORTAGE = "GOODS_DAMAGE_OR_SHORTAGE",
    OTHER = "OTHER"
}
export declare enum PenaltyStatus {
    PENDING = "PENDING",
    PARTIALLY_RECOVERED = "PARTIALLY_RECOVERED",
    RECOVERED = "RECOVERED",
    CANCELLED = "CANCELLED"
}
export declare class DriverPenalty extends Document {
    driver_id: Types.ObjectId;
    business_id: Types.ObjectId;
    admin_id: Types.ObjectId;
    category: PenaltyCategory;
    amount: number;
    recovered_amount: number;
    pending_amount: number;
    date_of_incident: number;
    description: string;
    evidence_url: string;
    status: PenaltyStatus;
    recovery_history: Array<{
        salary_id?: Types.ObjectId | null;
        ledger_id?: Types.ObjectId | null;
        amount: number;
        deducted_at: number;
    }>;
    is_demo: boolean;
    created_at: number;
    updated_at: number;
}
export declare const DriverPenaltySchema: import("mongoose").Schema<DriverPenalty, import("mongoose").Model<DriverPenalty, any, any, any, Document<unknown, any, DriverPenalty, any> & DriverPenalty & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, DriverPenalty, Document<unknown, {}, import("mongoose").FlatRecord<DriverPenalty>, {}> & import("mongoose").FlatRecord<DriverPenalty> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
