import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { SupplierCostPriceRepository } from './repositories/supplier-cost-price.repository';
import { CreateSupplierCostPriceDto, UpdateSupplierCostPriceDto, BulkApplySupplierCostPriceDto } from './dto';
import { SupplierCostPriceEntity } from '../../entities/supplier-cost-price.entity';
import { TransportServiceEntity } from '../../entities/transport-service.entity';
import { VehicleTypeEntity } from '../../entities/vehicle-type.entity';
import { SeasonEntity } from '../../entities/season.entity';
import { SupplierEntity } from '../../entities/supplier.entity';
export declare class SupplierCostPriceService {
    private readonly repo;
    private readonly cls;
    private readonly transportServiceRepo;
    private readonly vehicleTypeRepo;
    private readonly seasonRepo;
    private readonly supplierRepo;
    constructor(repo: SupplierCostPriceRepository, cls: ClsService, transportServiceRepo: Repository<TransportServiceEntity>, vehicleTypeRepo: Repository<VehicleTypeEntity>, seasonRepo: Repository<SeasonEntity>, supplierRepo: Repository<SupplierEntity>);
    private tenantId;
    private userId;
    findBySupplier(supplier_id: string): Promise<SupplierCostPriceEntity[]>;
    findBestMatch(args: {
        supplier_id: string;
        transport_service_id: string;
        vehicle_type_id?: string | null;
        mode?: 'PVT' | 'SIC';
        season_id?: string | null;
        date?: string | null;
    }): Promise<SupplierCostPriceEntity | null>;
    private resolveSeasonIdForServiceDate;
    private assertCostsWithinFloor;
    upsert(dto: CreateSupplierCostPriceDto): Promise<{
        id: string;
        created: boolean;
    }>;
    update(id: string, dto: UpdateSupplierCostPriceDto): Promise<{
        id: string;
        message: string;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    private linkedServiceIdsForSupplier;
    bulkApply(dto: BulkApplySupplierCostPriceDto): Promise<{
        applied: number;
    }>;
}
