import { PrismaService } from '../prisma/prisma.service';
type PlateQuery = {
    page?: string;
    pageSize?: string;
    search?: string;
    status?: string;
    holderCode?: string;
    brakeName?: string;
    sortBy?: string;
    sortOrder?: string;
};
type PlateWriteDto = {
    sourceId?: number | string | null;
    holderCode?: string;
    plateName?: string;
    brakeName?: string;
    plateCode?: string;
    brakeType?: string;
    brakeTypeCode?: string;
    loadCarryingType?: string;
    loadCarryingCode?: string;
    mountingType?: string;
    mountingCode?: string;
    fittingSize?: string;
    fittingSizeCode?: string;
    bearingType?: string;
    bearingCode?: string;
    fittingType?: string;
    fittingCode?: string;
    yokeName?: string | null;
    yokeCode?: string | null;
    status?: string;
};
export declare class PlateMasterService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(query: PlateQuery): Promise<{
        items: {
            id: string;
            sourceId: number | null;
            bearingType: string;
            bearingCode: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            holderCode: string;
            plateCode: string;
            plateName: string;
            brakeName: string;
            brakeType: string;
            brakeTypeCode: string;
            loadCarryingType: string;
            loadCarryingCode: string;
            mountingType: string;
            mountingCode: string;
            fittingSize: string;
            fittingSizeCode: string;
            fittingType: string;
            fittingCode: string;
            yokeName: string | null;
            yokeCode: string | null;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            statuses: string[];
        };
    }>;
    getHolderCodeOptions(): Promise<string[]>;
    getBrakeNameOptions(): Promise<string[]>;
    create(dto: PlateWriteDto): Promise<{
        id: string;
        sourceId: number | null;
        bearingType: string;
        bearingCode: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        holderCode: string;
        plateCode: string;
        plateName: string;
        brakeName: string;
        brakeType: string;
        brakeTypeCode: string;
        loadCarryingType: string;
        loadCarryingCode: string;
        mountingType: string;
        mountingCode: string;
        fittingSize: string;
        fittingSizeCode: string;
        fittingType: string;
        fittingCode: string;
        yokeName: string | null;
        yokeCode: string | null;
    }>;
    update(id: string, dto: PlateWriteDto): Promise<{
        id: string;
        sourceId: number | null;
        bearingType: string;
        bearingCode: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        holderCode: string;
        plateCode: string;
        plateName: string;
        brakeName: string;
        brakeType: string;
        brakeTypeCode: string;
        loadCarryingType: string;
        loadCarryingCode: string;
        mountingType: string;
        mountingCode: string;
        fittingSize: string;
        fittingSizeCode: string;
        fittingType: string;
        fittingCode: string;
        yokeName: string | null;
        yokeCode: string | null;
    }>;
    delete(id: string): Promise<{
        deleted: boolean;
    }>;
    importFile(buffer: Buffer): Promise<{
        totalRows: number;
        created: number;
        updated: number;
        skipped: number;
        errors: string[];
    }>;
    exportCsv(query: PlateQuery): Promise<string>;
    private ensureExists;
    private buildWhere;
    private getStatusOptions;
    private getProductTagCodeSets;
    private collectProductTagErrors;
    private ensureProductTagCodes;
    private appendMissingProductTagError;
    private validateWrite;
    private toPositiveNumber;
}
export {};
