import { QuotationRepository } from "../repositories/QuotationRepository.js";
import { Prisma } from "../generated/prisma/client.js";
import type { Response } from "express";
import { ShopRepository } from "../repositories/ShopRepository.js";
export declare class QuotationService {
    private readonly quotationRepository;
    private readonly shopRepository;
    constructor(quotationRepository?: QuotationRepository, shopRepository?: ShopRepository);
    private generateQuotationNoCandidate;
    createQuotation(data: any): Promise<{
        customer: {
            name: string;
            id: bigint;
        } | null;
        items: ({
            vegetable: {
                name: string;
                id: bigint;
            } | null;
        } & {
            unit: string;
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            hsnCode: string | null;
            amount: Prisma.Decimal;
            vegetableId: bigint | null;
            quantity: Prisma.Decimal;
            quotationId: bigint;
            vegName: string;
            price: Prisma.Decimal;
        })[];
    } & {
        id: bigint;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        amount: Prisma.Decimal;
        customerId: bigint | null;
        discount: Prisma.Decimal;
        quotationNo: string;
        customerName: string;
        quotationDate: Date;
        extraCharge: Prisma.Decimal;
        totalAmount: Prisma.Decimal;
    }>;
    updateQuotation(id: bigint, data: any): Promise<{
        customer: {
            name: string;
            id: bigint;
        } | null;
        items: ({
            vegetable: {
                name: string;
                id: bigint;
            } | null;
        } & {
            unit: string;
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            hsnCode: string | null;
            amount: Prisma.Decimal;
            vegetableId: bigint | null;
            quantity: Prisma.Decimal;
            quotationId: bigint;
            vegName: string;
            price: Prisma.Decimal;
        })[];
    } & {
        id: bigint;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        amount: Prisma.Decimal;
        customerId: bigint | null;
        discount: Prisma.Decimal;
        quotationNo: string;
        customerName: string;
        quotationDate: Date;
        extraCharge: Prisma.Decimal;
        totalAmount: Prisma.Decimal;
    }>;
    getQuotations(page?: number, limit?: number, search?: string, dateFromStr?: string, dateToStr?: string): Promise<{
        data: ({
            customer: {
                name: string;
                id: bigint;
            } | null;
            items: ({
                vegetable: {
                    name: string;
                    id: bigint;
                } | null;
            } & {
                unit: string;
                id: bigint;
                createdAt: Date;
                updatedAt: Date;
                createdBy: bigint | null;
                hsnCode: string | null;
                amount: Prisma.Decimal;
                vegetableId: bigint | null;
                quantity: Prisma.Decimal;
                quotationId: bigint;
                vegName: string;
                price: Prisma.Decimal;
            })[];
        } & {
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            amount: Prisma.Decimal;
            customerId: bigint | null;
            discount: Prisma.Decimal;
            quotationNo: string;
            customerName: string;
            quotationDate: Date;
            extraCharge: Prisma.Decimal;
            totalAmount: Prisma.Decimal;
        })[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getQuotationById(id: bigint): Promise<{
        customer: {
            name: string;
            id: bigint;
        } | null;
        items: ({
            vegetable: {
                name: string;
                id: bigint;
            } | null;
        } & {
            unit: string;
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            hsnCode: string | null;
            amount: Prisma.Decimal;
            vegetableId: bigint | null;
            quantity: Prisma.Decimal;
            quotationId: bigint;
            vegName: string;
            price: Prisma.Decimal;
        })[];
    } & {
        id: bigint;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        amount: Prisma.Decimal;
        customerId: bigint | null;
        discount: Prisma.Decimal;
        quotationNo: string;
        customerName: string;
        quotationDate: Date;
        extraCharge: Prisma.Decimal;
        totalAmount: Prisma.Decimal;
    }>;
    deleteQuotation(id: bigint): Promise<{
        id: bigint;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        amount: Prisma.Decimal;
        customerId: bigint | null;
        discount: Prisma.Decimal;
        quotationNo: string;
        customerName: string;
        quotationDate: Date;
        extraCharge: Prisma.Decimal;
        totalAmount: Prisma.Decimal;
    }>;
    generatePdf(id: bigint, res: Response): Promise<void>;
}
//# sourceMappingURL=QuotationService.d.ts.map