import { ConfigService } from "@nestjs/config";
import { AddOnRepository } from "../repositories/add-ons.repository";
import { CreateAddOnDto } from "../dto/create-add-ons.dto";
import { AddOn } from "../entities/add-ons.entity";
import { UpdateAddOnDto } from "../dto/update-add-ons.dto";
import { Repository } from "typeorm";
import { VehicleModel } from "../../vehicle-model/entities/vehicle-model.entity";
import { TripRepository } from "../../trips/repositories/trip.repository";
import { PricingPlanRepository } from "../../plans/repositories/plan.repository";
export declare class AddOnService {
    private readonly addOnRepository;
    private readonly configService;
    private readonly tripRepository;
    private readonly pricingPlanRepository;
    private readonly addOnsEntityRepository;
    private readonly vehicleModelRepository;
    constructor(addOnRepository: AddOnRepository, configService: ConfigService, tripRepository: TripRepository, pricingPlanRepository: PricingPlanRepository, addOnsEntityRepository: Repository<AddOn>, vehicleModelRepository: Repository<VehicleModel>);
    create(createAddOnDto: CreateAddOnDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(limit?: string, skip?: string, search?: string, sortBy?: string, sortOrder?: string, vehicle_model_ids?: number[]): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getAddOnsForTrip(tripId: number, search: string, skip: number, limit: number): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateAddOnDto: UpdateAddOnDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getAddOnsDropdown(): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    checkAddOnExists(name: string, excludeId?: number): Promise<boolean | {
        success: boolean;
        code: number;
        message: string;
    }>;
}
