import { Getter } from '@loopback/core';
import { Entity, HasManyRepositoryFactory, juggler } from '@loopback/repository';
import { DefaultUserModifyCrudRepository, IAuthUserWithPermissions } from '@sourceloop/core';
import { BillingCustomer, Invoice } from '../models';
import { InvoiceRepository } from './invoice.repository';
export declare class BillingCustomerRepository<T extends BillingCustomer = BillingCustomer> extends DefaultUserModifyCrudRepository<T, typeof BillingCustomer.prototype.id, {}> {
    protected invoiceRepositoryGetter: Getter<InvoiceRepository>;
    readonly getCurrentUser: Getter<IAuthUserWithPermissions>;
    private readonly billingCustomer;
    readonly invoices: HasManyRepositoryFactory<Invoice, typeof BillingCustomer.prototype.id>;
    constructor(dataSource: juggler.DataSource, invoiceRepositoryGetter: Getter<InvoiceRepository>, getCurrentUser: Getter<IAuthUserWithPermissions>, billingCustomer: typeof Entity & {
        prototype: T;
    });
}
