import { Getter } from '@loopback/core';
import { DefaultUserModifyCrudRepository, IAuthUserWithPermissions } from '@sourceloop/core';
import { BelongsToAccessor, Entity, HasOneRepositoryFactory, juggler } from '@loopback/repository';
import { Address, Lead, LeadRelations, Tenant } from '../models';
import { TenantRepository } from './tenant.repository';
import { AddressRepository } from './address.repository';
export declare class LeadRepository<T extends Lead = Lead> extends DefaultUserModifyCrudRepository<T, typeof Lead.prototype.id, LeadRelations> {
    readonly getCurrentUser: Getter<IAuthUserWithPermissions>;
    protected tenantRepositoryGetter: Getter<TenantRepository>;
    protected addressRepositoryGetter: Getter<AddressRepository>;
    private readonly lead;
    readonly tenant: HasOneRepositoryFactory<Tenant, typeof Tenant.prototype.id>;
    readonly address: BelongsToAccessor<Address, typeof Tenant.prototype.id>;
    constructor(dataSource: juggler.DataSource, getCurrentUser: Getter<IAuthUserWithPermissions>, tenantRepositoryGetter: Getter<TenantRepository>, addressRepositoryGetter: Getter<AddressRepository>, lead: typeof Entity & {
        prototype: T;
    });
}
