import { Getter } from '@loopback/core';
import { BelongsToAccessor, juggler, Entity } from '@loopback/repository';
import { Subscription, SubscriptionRelations, Plan, Invoice } from '../models';
import { PlanRepository } from './plan.repository';
import { DefaultUserModifyCrudRepository, IAuthUserWithPermissions } from '@sourceloop/core';
import { InvoiceRepository } from './invoice.repository';
export declare class SubscriptionRepository<T extends Subscription = Subscription> extends DefaultUserModifyCrudRepository<T, typeof Subscription.prototype.id, SubscriptionRelations> {
    readonly getCurrentUser: Getter<IAuthUserWithPermissions>;
    protected planRepositoryGetter: Getter<PlanRepository>;
    protected invoiceRepositoryGetter: Getter<InvoiceRepository>;
    private readonly subscription;
    readonly plan: BelongsToAccessor<Plan, typeof Subscription.prototype.id>;
    readonly invoice: BelongsToAccessor<Invoice, typeof Subscription.prototype.id>;
    constructor(dataSource: juggler.DataSource, getCurrentUser: Getter<IAuthUserWithPermissions>, planRepositoryGetter: Getter<PlanRepository>, invoiceRepositoryGetter: Getter<InvoiceRepository>, subscription: typeof Entity & {
        prototype: T;
    });
}
