import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { PartsService } from './parts.service';
import { PartStatus } from '@prisma/client';
interface ExcelRow {
    partNumber: string;
    partNameEn: string;
    partNameCn?: string;
    unit?: string;
    source?: string;
    specifications?: string;
    remark?: string;
    station?: string;
    warehouseLocation?: string;
    currentStock?: number;
    minStock?: number;
    maxStock?: number;
    customFields?: Record<string, any>;
    groupIds?: string[];
}
export declare class ExcelService {
    private readonly prisma;
    private readonly partsService;
    constructor(prisma: PrismaService, partsService: PartsService);
    importFromExcel(rows: ExcelRow[], userId: string, userName: string, fileName: string, fileSize: number, updateExisting?: boolean): Promise<{
        total: number;
        success: number;
        failed: number;
        updated: number;
        errors: any[];
        warnings: any[];
        importLogId: string;
    }>;
    exportToExcel(query?: {
        category?: string;
        station?: string;
        warehouseLocation?: string;
        status?: PartStatus;
    }): Promise<any[]>;
    getExcelTemplate(): {
        'Part Number': string;
        'Part Name (EN)': string;
        'Part Name (CN)': string;
        Unit: string;
        Source: string;
        Specifications: string;
        Remark: string;
        Station: string;
        'Warehouse Location': string;
        'Current Stock': string;
        'Min Stock': string;
        'Max Stock': string;
    }[];
    validateExcelData(rows: any[]): {
        valid: boolean;
        errors: any[];
        warnings?: any[];
    };
    getImportHistory(page?: number, limit?: number): Promise<{
        items: {
            id: string;
            status: import("@prisma/client").$Enums.ImportStatus;
            metadata: import("@prisma/client/runtime/library").JsonValue;
            summary: import("@prisma/client/runtime/library").JsonValue | null;
            startedAt: Date | null;
            completedAt: Date | null;
            errors: import("@prisma/client/runtime/library").JsonValue | null;
            fileName: string;
            fileSize: number;
            totalRows: number;
            fileHash: string | null;
            successRows: number;
            failedRows: number;
            skippedRows: number;
            importedBy: string;
            importedAt: Date;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getImportLog(id: string): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.ImportStatus;
        metadata: import("@prisma/client/runtime/library").JsonValue;
        summary: import("@prisma/client/runtime/library").JsonValue | null;
        startedAt: Date | null;
        completedAt: Date | null;
        errors: import("@prisma/client/runtime/library").JsonValue | null;
        fileName: string;
        fileSize: number;
        totalRows: number;
        fileHash: string | null;
        successRows: number;
        failedRows: number;
        skippedRows: number;
        importedBy: string;
        importedAt: Date;
    }>;
}
export {};
