import { PrismaService } from '../prisma/prisma.service';
type HolderQuery = {
    page?: string;
    pageSize?: string;
    search?: string;
    status?: string;
    holderInch?: string;
    bodyCode?: string;
    sortBy?: string;
    sortOrder?: string;
};
type HolderWriteDto = {
    sourceId?: number | string | null;
    holderInch?: string;
    holderName?: string;
    holderCode?: string;
    bodyName?: string;
    bodyCode?: string;
    yorkeName?: string | null;
    yorkeCode?: string | null;
    yorkeLoad?: number | string | null;
    status?: string;
};
export declare class HolderMasterService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(query: HolderQuery): Promise<{
        items: {
            id: string;
            sourceId: number | null;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            holderCode: string;
            holderName: string;
            holderInchValue: number;
            holderInch: string;
            bodyName: string;
            bodyCode: string;
            yorkeName: string | null;
            yorkeCode: string | null;
            yorkeLoad: number | null;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            statuses: string[];
        };
    }>;
    getInchOptions(): Promise<{
        value: number;
        label: string;
    }[]>;
    getBodyCodeOptions(): Promise<string[]>;
    create(dto: HolderWriteDto): Promise<{
        id: string;
        sourceId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        holderCode: string;
        holderName: string;
        holderInchValue: number;
        holderInch: string;
        bodyName: string;
        bodyCode: string;
        yorkeName: string | null;
        yorkeCode: string | null;
        yorkeLoad: number | null;
    }>;
    update(id: string, dto: HolderWriteDto): Promise<{
        id: string;
        sourceId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        holderCode: string;
        holderName: string;
        holderInchValue: number;
        holderInch: string;
        bodyName: string;
        bodyCode: string;
        yorkeName: string | null;
        yorkeCode: string | null;
        yorkeLoad: number | null;
    }>;
    delete(id: string): Promise<{
        deleted: boolean;
    }>;
    importFile(buffer: Buffer): Promise<{
        totalRows: number;
        created: number;
        updated: number;
        skipped: number;
        errors: string[];
    }>;
    exportCsv(query: HolderQuery): Promise<string>;
    private ensureExists;
    private buildWhere;
    private getStatusOptions;
    private getBodyTypeCodes;
    private ensureBodyCodeExists;
    private validateWrite;
    private toPositiveNumber;
}
export {};
