import { PrismaService } from '../prisma/prisma.service';
type WheelQuery = {
    page?: string;
    pageSize?: string;
    search?: string;
    status?: string;
    wheelType?: string;
    bearingType?: string;
    sortBy?: string;
    sortOrder?: string;
};
type WheelWriteDto = {
    sourceId?: number | string | null;
    wheelName?: string;
    wheelCode?: string;
    wheelSize?: string;
    wheelSizeCode?: string;
    wheelType?: string;
    wheelTypeCode?: string;
    bearingType?: string;
    bearingCode?: string;
    dustCoverName?: string;
    dustCoverCode?: string;
    wheelColor?: string;
    wheelColorCode?: string;
    dynamicLoadCarryCapacity?: string;
    dynamicLoadCarryCapacityCode?: string;
    wheelTypeSubName?: string;
    wheelTypeSubNameCode?: string;
    status?: string;
};
export declare class WheelMasterService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(query: WheelQuery): Promise<{
        items: {
            id: string;
            sourceId: number | null;
            wheelInchValue: number;
            wheelName: string;
            wheelCode: string;
            wheelSize: string;
            wheelSizeCode: string;
            wheelType: string;
            wheelTypeCode: string;
            bearingType: string;
            bearingCode: string;
            dustCoverName: string;
            dustCoverCode: string;
            wheelColor: string;
            wheelColorCode: string;
            dynamicLoadCarryCapacity: string;
            dynamicLoadCarryCapacityCode: string;
            wheelTypeSubName: string;
            wheelTypeSubNameCode: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            statuses: string[];
        };
    }>;
    getWheelTypeOptions(): Promise<string[]>;
    getBearingTypeOptions(): Promise<string[]>;
    create(dto: WheelWriteDto): Promise<{
        id: string;
        sourceId: number | null;
        wheelInchValue: number;
        wheelName: string;
        wheelCode: string;
        wheelSize: string;
        wheelSizeCode: string;
        wheelType: string;
        wheelTypeCode: string;
        bearingType: string;
        bearingCode: string;
        dustCoverName: string;
        dustCoverCode: string;
        wheelColor: string;
        wheelColorCode: string;
        dynamicLoadCarryCapacity: string;
        dynamicLoadCarryCapacityCode: string;
        wheelTypeSubName: string;
        wheelTypeSubNameCode: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
    update(id: string, dto: WheelWriteDto): Promise<{
        id: string;
        sourceId: number | null;
        wheelInchValue: number;
        wheelName: string;
        wheelCode: string;
        wheelSize: string;
        wheelSizeCode: string;
        wheelType: string;
        wheelTypeCode: string;
        bearingType: string;
        bearingCode: string;
        dustCoverName: string;
        dustCoverCode: string;
        wheelColor: string;
        wheelColorCode: string;
        dynamicLoadCarryCapacity: string;
        dynamicLoadCarryCapacityCode: string;
        wheelTypeSubName: string;
        wheelTypeSubNameCode: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
    delete(id: string): Promise<{
        deleted: boolean;
    }>;
    importFile(buffer: Buffer): Promise<{
        totalRows: number;
        created: number;
        updated: number;
        skipped: number;
        errors: string[];
    }>;
    exportCsv(query: WheelQuery): Promise<string>;
    private ensureExists;
    private buildWhere;
    private getStatusOptions;
    private getProductTagCodeSets;
    private collectProductTagErrors;
    private ensureProductTagCodes;
    private appendMissingProductTagError;
    private validateWrite;
    private toPositiveNumber;
}
export {};
