import { Getter } from '@loopback/core';
import { BelongsToAccessor, Entity, juggler } from '@loopback/repository';
import { DefaultTransactionalUserModifyRepository, IAuthUserWithPermissions } from '@sourceloop/core';
import { Resource, ResourceRelations, Tenant } from '../models';
import { TenantRepository } from './tenant.repository';
import { ResourceData } from '../types';
export declare class ResourceRepository<T extends ResourceData['metadata'] = ResourceData['metadata']> extends DefaultTransactionalUserModifyRepository<Resource<T>, typeof Resource.prototype.id, ResourceRelations> {
    readonly getCurrentUser: Getter<IAuthUserWithPermissions>;
    protected tenantRepositoryGetter: Getter<TenantRepository>;
    private readonly resource;
    readonly tenant: BelongsToAccessor<Tenant, typeof Resource.prototype.id>;
    constructor(dataSource: juggler.DataSource, getCurrentUser: Getter<IAuthUserWithPermissions>, tenantRepositoryGetter: Getter<TenantRepository>, resource: typeof Entity & {
        prototype: Resource<T>;
    });
}
