import { VegetableRepository } from "../repositories/VegetableRepository.js";
export interface VegetableImportRowResult {
    row: number;
    name: string;
    status: "imported" | "skipped";
    reason?: string;
}
export declare class VegetableService {
    private readonly vegetableRepository;
    constructor(vegetableRepository?: VegetableRepository);
    createVegetable(data: {
        name: string;
        tamilName?: string;
        status?: boolean;
        hindiName?: string;
        hsnCode: string;
        isFlexible?: boolean;
        createdBy?: bigint;
    }): Promise<{
        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;
    }>;
    getVegetables(page?: number, limit?: number, search?: string, status?: boolean): Promise<{
        data: {
            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;
        }[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getVegetableById(id: bigint): Promise<{
        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;
    }>;
    updateVegetable(id: bigint, data: {
        name?: string;
        tamilName?: string;
        status?: boolean;
        hindiName?: string;
        hsnCode?: string;
        isFlexible?: boolean;
    }): Promise<{
        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;
    }>;
    deleteVegetable(id: bigint): Promise<{
        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;
    }>;
    findByNameForImport(name: string): Promise<{
        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;
    } | null>;
    generateImportTemplate(): Promise<Buffer>;
    importBulk(fileBuffer: Buffer, createdBy?: bigint): Promise<{
        message: string;
        importedCount: number;
        skippedCount: number;
        results: VegetableImportRowResult[];
    }>;
}
//# sourceMappingURL=VegetableService.d.ts.map