import { FindManyOptions, FindOneOptions, Repository } from 'typeorm';
import { NestAuthTenant } from '../entities/tenant.entity';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { AuthConfigService } from '../../core/services/auth-config.service';
import { DebugLoggerService } from '../../core/services/debug-logger.service';
export declare class TenantService {
    private tenantRepository;
    private eventEmitter;
    private authConfig;
    private debugLogger;
    private defaultTenant;
    constructor(tenantRepository: Repository<NestAuthTenant>, eventEmitter: EventEmitter2, authConfig: AuthConfigService, debugLogger: DebugLoggerService);
    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>;
    initializeDefaultTenant(): Promise<NestAuthTenant | null>;
    getDefaultTenant(): NestAuthTenant | null;
    getDefaultTenantId(): string | null;
    getOrCreateDefaultTenant(): Promise<NestAuthTenant | null>;
    resolveTenantId(providedTenantId?: string | null): Promise<string | null>;
}
//# sourceMappingURL=tenant.service.d.ts.map