import { IService } from 'loopback4-billing';
import { InvoiceDto } from '../models/dto/invoice-dto.model';
import { TransactionDto } from '../models/dto/transaction-dto.model';
import { InvoiceRepository } from '../repositories';
import { BillingCustomerRepository } from '../repositories/billing-customer.repository';
export declare class BillingInvoiceController {
    billingCustomerRepository: BillingCustomerRepository;
    invoiceRepository: InvoiceRepository;
    private readonly billingProvider;
    constructor(billingCustomerRepository: BillingCustomerRepository, invoiceRepository: InvoiceRepository, billingProvider: IService);
    create(invoiceDto: Omit<InvoiceDto, 'id' | 'status'>): Promise<InvoiceDto>;
    getInvoice(invoiceId: string): Promise<InvoiceDto>;
    updateById(invoiceId: string, invoiceDto: Partial<InvoiceDto>): Promise<void>;
    applyPaymentForInvoice(invoiceId: string, transactionDto: TransactionDto): Promise<void>;
    deleteById(invoiceId: string): Promise<void>;
}
