import { NestMiddleware } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';
import { TenantService } from '@/modules/tenant/tenant.service';
import { DomainMappingService } from '@/modules/domain-mapping/domain-mapping.service';
import { ClsService } from 'nestjs-cls';
export interface RequestWithTenant extends Request {
    tenant?: {
        id: number;
        subdomain: string;
        database_name: string;
        name: string;
        project_id: string | number;
    };
}
export declare class PublicTenantMiddleware implements NestMiddleware {
    private readonly tenantService;
    private readonly domainMappingService;
    private readonly cls;
    private readonly logger;
    constructor(tenantService: TenantService, domainMappingService: DomainMappingService, cls: ClsService);
    use(req: RequestWithTenant, res: Response, next: NextFunction): Promise<void>;
}
