import { Count, Filter, Where } from '@loopback/repository';
import { TenantRepository } from '../repositories/tenant.repository';
import { SubscriptionDTO, Tenant, TenantOnboardDTO } from '../models';
import { OnboardingService } from '../services';
import { IProvisioningService } from '../types';
export declare class TenantController {
    private readonly tenantRepository;
    private readonly onboarding;
    private readonly provisioningService;
    constructor(tenantRepository: TenantRepository, onboarding: OnboardingService, provisioningService: IProvisioningService<SubscriptionDTO>);
    create(dto: TenantOnboardDTO): Promise<Tenant>;
    provision(subscription: SubscriptionDTO, id: string): Promise<void>;
    count(where?: Where<Tenant>): Promise<Count>;
    find(filter?: Filter<Tenant>): Promise<Tenant[]>;
    updateAll(tenant: Tenant, where?: Where<Tenant>): Promise<Count>;
    findById(id: string, filter?: Filter<Tenant>): Promise<Tenant>;
    updateById(id: string, tenant: Tenant): Promise<void>;
    replaceById(id: string, tenant: Tenant): Promise<void>;
    deleteById(id: string): Promise<void>;
}
