import { Prisma } from "../generated/prisma/client.js";
export declare class PurchaseRepository {
    create(data: Prisma.PurchaseUncheckedCreateInput): Promise<{
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    }>;
    findAll(skip?: number, take?: number, search?: string, dateFrom?: Date, dateTo?: Date, supplierId?: bigint, vegetableId?: bigint, status?: string): Promise<{
        items: {
            unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
            id: bigint;
            status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            deletedAt: Date | null;
            supplierId: bigint | null;
            remarks: string | null;
            purchaseDate: Date;
            billNo: string | null;
            cashSupplierName: string | null;
            vegetableId: bigint;
            lotNo: string;
            purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
            rateType: import("../generated/prisma/index.js").$Enums.RateType;
            bags: Prisma.Decimal;
            weightPerBag: Prisma.Decimal | null;
            quantity: Prisma.Decimal;
            ratePerUnit: Prisma.Decimal;
            freight: Prisma.Decimal;
            extraFreight: Prisma.Decimal;
            associationFee: Prisma.Decimal;
            unloadingFee: Prisma.Decimal;
            miscellaneousFee: Prisma.Decimal;
            totalFreight: Prisma.Decimal;
            transportFee: Prisma.Decimal;
            loadingUnloadingFee: Prisma.Decimal;
            otherCharges: Prisma.Decimal;
            thaiyalCharges: Prisma.Decimal;
            extraCharges: Prisma.Decimal;
            goodsTotal: Prisma.Decimal;
            surchargeTotal: Prisma.Decimal;
            costPerUnit: Prisma.Decimal;
            grandTotal: Prisma.Decimal;
            dateOfDespatch: Date | null;
            arrivalDate: Date | null;
            placeOfDespatch: string | null;
            placeOfArrival: string | null;
            truckNo: string | null;
            agentName: string | null;
            advanceAmount: Prisma.Decimal;
            balanceAmount: Prisma.Decimal;
            remainingQuantity: Prisma.Decimal;
            remainingBags: Prisma.Decimal;
            closedAt: Date | null;
        }[];
        total: number;
    }>;
    findById(id: bigint): Promise<({
        vegetable: {
            name: string;
            id: bigint;
            isFlexible: boolean;
        };
        supplier: {
            name: string;
        } | null;
        expenses: {
            id: number;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            amount: Prisma.Decimal;
            paymentMode: import("../generated/prisma/index.js").$Enums.PaymentMode;
            remarks: string | null;
            purchaseId: bigint | null;
            expenseDate: Date;
            category: string;
        }[];
    } & {
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    }) | null>;
    update(id: bigint, data: Prisma.PurchaseUncheckedUpdateInput): Promise<{
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    }>;
    softDelete(id: bigint): Promise<{
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    }>;
    findByLotNo(lotNo: string, excludeId?: bigint): Promise<{
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    } | null>;
    findActiveByLotNo(lotNo: string, tx?: Prisma.TransactionClient): Promise<({
        vegetable: {
            name: string;
            id: bigint;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            tamilName: string | null;
            createdBy: bigint | null;
            hindiName: string | null;
            kannadaName: string | null;
            malayalamName: string | null;
            teluguName: string | null;
            hsnCode: string | null;
            isFlexible: boolean;
        };
    } & {
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    }) | null>;
    findAnyByLotNo(lotNo: string, tx?: Prisma.TransactionClient): Promise<{
        vegetableId: bigint;
        lotNo: string;
    } | null>;
    findActivePurchasesByLotNo(lotNo: string, tx?: Prisma.TransactionClient): Promise<({
        vegetable: {
            name: string;
            id: bigint;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            tamilName: string | null;
            createdBy: bigint | null;
            hindiName: string | null;
            kannadaName: string | null;
            malayalamName: string | null;
            teluguName: string | null;
            hsnCode: string | null;
            isFlexible: boolean;
        };
    } & {
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    })[]>;
    autoUpdateStatus(id: bigint, tx?: Prisma.TransactionClient): Promise<void>;
    atomicDecrementStock(id: bigint, quantity: number, bags?: number, tx?: Prisma.TransactionClient): Promise<void>;
    atomicIncrementStock(id: bigint, quantity: number, bags?: number, tx?: Prisma.TransactionClient): Promise<{
        unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
        id: bigint;
        status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        supplierId: bigint | null;
        remarks: string | null;
        purchaseDate: Date;
        billNo: string | null;
        cashSupplierName: string | null;
        vegetableId: bigint;
        lotNo: string;
        purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
        rateType: import("../generated/prisma/index.js").$Enums.RateType;
        bags: Prisma.Decimal;
        weightPerBag: Prisma.Decimal | null;
        quantity: Prisma.Decimal;
        ratePerUnit: Prisma.Decimal;
        freight: Prisma.Decimal;
        extraFreight: Prisma.Decimal;
        associationFee: Prisma.Decimal;
        unloadingFee: Prisma.Decimal;
        miscellaneousFee: Prisma.Decimal;
        totalFreight: Prisma.Decimal;
        transportFee: Prisma.Decimal;
        loadingUnloadingFee: Prisma.Decimal;
        otherCharges: Prisma.Decimal;
        thaiyalCharges: Prisma.Decimal;
        extraCharges: Prisma.Decimal;
        goodsTotal: Prisma.Decimal;
        surchargeTotal: Prisma.Decimal;
        costPerUnit: Prisma.Decimal;
        grandTotal: Prisma.Decimal;
        dateOfDespatch: Date | null;
        arrivalDate: Date | null;
        placeOfDespatch: string | null;
        placeOfArrival: string | null;
        truckNo: string | null;
        agentName: string | null;
        advanceAmount: Prisma.Decimal;
        balanceAmount: Prisma.Decimal;
        remainingQuantity: Prisma.Decimal;
        remainingBags: Prisma.Decimal;
        closedAt: Date | null;
    }>;
    hasSaleItems(id: bigint): Promise<boolean>;
    todayPurchaseOrdersCount(): Promise<{
        items: ({
            vegetable: {
                name: string;
            };
            supplier: {
                name: string;
            } | null;
        } & {
            unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
            id: bigint;
            status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            deletedAt: Date | null;
            supplierId: bigint | null;
            remarks: string | null;
            purchaseDate: Date;
            billNo: string | null;
            cashSupplierName: string | null;
            vegetableId: bigint;
            lotNo: string;
            purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
            rateType: import("../generated/prisma/index.js").$Enums.RateType;
            bags: Prisma.Decimal;
            weightPerBag: Prisma.Decimal | null;
            quantity: Prisma.Decimal;
            ratePerUnit: Prisma.Decimal;
            freight: Prisma.Decimal;
            extraFreight: Prisma.Decimal;
            associationFee: Prisma.Decimal;
            unloadingFee: Prisma.Decimal;
            miscellaneousFee: Prisma.Decimal;
            totalFreight: Prisma.Decimal;
            transportFee: Prisma.Decimal;
            loadingUnloadingFee: Prisma.Decimal;
            otherCharges: Prisma.Decimal;
            thaiyalCharges: Prisma.Decimal;
            extraCharges: Prisma.Decimal;
            goodsTotal: Prisma.Decimal;
            surchargeTotal: Prisma.Decimal;
            costPerUnit: Prisma.Decimal;
            grandTotal: Prisma.Decimal;
            dateOfDespatch: Date | null;
            arrivalDate: Date | null;
            placeOfDespatch: string | null;
            placeOfArrival: string | null;
            truckNo: string | null;
            agentName: string | null;
            advanceAmount: Prisma.Decimal;
            balanceAmount: Prisma.Decimal;
            remainingQuantity: Prisma.Decimal;
            remainingBags: Prisma.Decimal;
            closedAt: Date | null;
        })[];
        total: number;
    }>;
    todayPurchaseTotalAmount(): Promise<number>;
    getVegetableStock(): Promise<{
        id: number;
        vegetable: string;
        remaining: number;
        remainingBags: number;
    }[]>;
    getAllPurchases(skip?: number, take?: number, search?: string, supplierId?: bigint, vegetableId?: bigint, dateFrom?: Date, dateTo?: Date): Promise<{
        items: {
            unit: import("../generated/prisma/index.js").$Enums.PurchaseUnit;
            id: bigint;
            status: import("../generated/prisma/index.js").$Enums.PurchaseStatus;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            deletedAt: Date | null;
            supplierId: bigint | null;
            remarks: string | null;
            purchaseDate: Date;
            billNo: string | null;
            cashSupplierName: string | null;
            vegetableId: bigint;
            lotNo: string;
            purchaseType: import("../generated/prisma/index.js").$Enums.PurchaseType;
            rateType: import("../generated/prisma/index.js").$Enums.RateType;
            bags: Prisma.Decimal;
            weightPerBag: Prisma.Decimal | null;
            quantity: Prisma.Decimal;
            ratePerUnit: Prisma.Decimal;
            freight: Prisma.Decimal;
            extraFreight: Prisma.Decimal;
            associationFee: Prisma.Decimal;
            unloadingFee: Prisma.Decimal;
            miscellaneousFee: Prisma.Decimal;
            totalFreight: Prisma.Decimal;
            transportFee: Prisma.Decimal;
            loadingUnloadingFee: Prisma.Decimal;
            otherCharges: Prisma.Decimal;
            thaiyalCharges: Prisma.Decimal;
            extraCharges: Prisma.Decimal;
            goodsTotal: Prisma.Decimal;
            surchargeTotal: Prisma.Decimal;
            costPerUnit: Prisma.Decimal;
            grandTotal: Prisma.Decimal;
            dateOfDespatch: Date | null;
            arrivalDate: Date | null;
            placeOfDespatch: string | null;
            placeOfArrival: string | null;
            truckNo: string | null;
            agentName: string | null;
            advanceAmount: Prisma.Decimal;
            balanceAmount: Prisma.Decimal;
            remainingQuantity: Prisma.Decimal;
            remainingBags: Prisma.Decimal;
            closedAt: Date | null;
        }[];
        total: number;
        grand_total_sum: number | Prisma.Decimal;
        balance_amount_sum: number | Prisma.Decimal;
        outstanding_balance_sum: number | Prisma.Decimal;
    }>;
}
//# sourceMappingURL=PurchaseRepository.d.ts.map