import { FindManyOptions, FindOneOptions, Repository } from 'typeorm';
import { NestAuthTenant } from '../entities/tenant.entity';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { DebugLoggerService } from '../../core/services/debug-logger.service';
import { AuthConfigService } from '../../core/services/auth-config.service';
export declare class TenantService {
    private tenantRepository;
    private eventEmitter;
    private debugLogger;
    private readonly authConfigService;
    constructor(tenantRepository: Repository<NestAuthTenant>, eventEmitter: EventEmitter2, debugLogger: DebugLoggerService, authConfigService: AuthConfigService);
    createTenant(data: Partial<NestAuthTenant>): Promise<NestAuthTenant>;
    getTenantById(id: string, options?: FindOneOptions<NestAuthTenant>): Promise<NestAuthTenant>;
    getTenantBySlug(slug: string, options?: FindOneOptions<NestAuthTenant>): Promise<NestAuthTenant>;
    getTenants(options?: FindManyOptions<NestAuthTenant>): Promise<NestAuthTenant[]>;
    updateTenant(id: string, data: Partial<NestAuthTenant>): Promise<NestAuthTenant>;
    deleteTenant(id: string): Promise<void>;
    updateTenantStatus(id: string, isActive: boolean): Promise<NestAuthTenant>;
    updateTenantMetadata(id: string, metadata: Record<string, any>): Promise<NestAuthTenant>;
    checkRequiredTenant(inputTenantId: string | null, throwError?: boolean): Promise<boolean>;
    resolveTenantId(inputTenantId?: string | null): Promise<string | null>;
}
//# sourceMappingURL=tenant.service.d.ts.map