import { CreateInvoiceDto } from "../dto/create-invoice.dto";
import { UpdateInvoiceDto } from "../dto/update-invoice.dto";
import { InvoiceRepository } from "../repositories/invoice.repository";
import { ClientCompanyRepository } from "../../clients-companies/repositories/clients-companies.repository";
import { CustomerRepository } from "../../customers/repositories/customers.repository";
import { Invoice } from "../entities/invoice.entity";
import { FilterInvoiceDto } from "../dto/filter-invoice.dto";
import { ConfigService } from "@nestjs/config";
import { ExcelService } from "src/utils/xlsx";
import { Trip } from "../../trips/entities/trip.entity";
import { Repository } from "typeorm";
import { TripBasePricingRepository } from "../../trips/repositories/trip-base-price.repository";
import { InvoiceTripRepository } from "../repositories/trip-invoice.repository";
import { TripAddOnsPricingRepository } from "../../trips/repositories/trip-addons-pricing.repository";
import { InvoiceSettingsRepository } from "../../clients-companies/repositories/invoice-settings.repository";
import { TripLog } from "../../trips/entities/trip-logs.entity";
export declare class InvoicesService {
    private readonly invoiceRepository;
    private readonly clientCompanyRepository;
    private readonly customerRepository;
    private readonly configService;
    private readonly excelService;
    private readonly tripBasePricingRepository;
    private readonly invoiceTripRepository;
    private readonly tripAddonsPricingRepository;
    private readonly invoiceSettingsRepository;
    private readonly tripEntityRepository;
    private readonly invoiceEntityRepository;
    private readonly tripLogRepository;
    constructor(invoiceRepository: InvoiceRepository, clientCompanyRepository: ClientCompanyRepository, customerRepository: CustomerRepository, configService: ConfigService, excelService: ExcelService, tripBasePricingRepository: TripBasePricingRepository, invoiceTripRepository: InvoiceTripRepository, tripAddonsPricingRepository: TripAddOnsPricingRepository, invoiceSettingsRepository: InvoiceSettingsRepository, tripEntityRepository: Repository<Trip>, invoiceEntityRepository: Repository<Invoice>, tripLogRepository: Repository<TripLog>);
    create(createInvoiceDto: CreateInvoiceDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private calculateTripTotalPrice;
    findAll(filterInvoiceDto: FilterInvoiceDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    excelExport(filterInvoiceDto: FilterInvoiceDto): Promise<Buffer<ArrayBufferLike>>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateInvoiceDto: UpdateInvoiceDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private formatInvoiceDataForExcel;
    getUniqueLogDocumentsForInvoice(invoiceId: number): Promise<any[]>;
    downloadPdf(url: string): Promise<Buffer>;
    generateInvoicePdf(data: any): Promise<any>;
}
