import { TenantsService } from './tenants.service';
import { CreateTenantDto } from './dto/create-tenant.dto';
import { UpdateFeatureToggleDto } from './dto/update-feature-toggle.dto';
export declare class TenantsController {
    private readonly tenantsService;
    constructor(tenantsService: TenantsService);
    create(dto: CreateTenantDto): Promise<{
        tenant: {
            plan: {
                id: string;
                code: string;
                name: string;
                tier: import(".prisma/client").$Enums.PlanTier;
                fixedPrice: import("@prisma/client/runtime/library").Decimal;
                pricePerLot: import("@prisma/client/runtime/library").Decimal;
                currency: string;
                features: import("@prisma/client/runtime/library").JsonValue;
                isActive: boolean;
                createdAt: Date;
                updatedAt: Date;
            };
            featureToggles: {
                id: string;
                tenantId: string;
                featureKey: string;
                enabled: boolean;
                activatedAt: Date | null;
            }[];
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            companyName: string;
            legalId: string | null;
            contactEmail: string;
            contactPhone: string | null;
            city: string | null;
            country: string;
            status: import(".prisma/client").$Enums.TenantStatus;
            trialEndsAt: Date | null;
            planId: string;
        };
        admin: {
            id: string;
            email: string;
        };
    }>;
    findAll(): import(".prisma/client").Prisma.PrismaPromise<({
        plan: {
            id: string;
            code: string;
            name: string;
            tier: import(".prisma/client").$Enums.PlanTier;
            fixedPrice: import("@prisma/client/runtime/library").Decimal;
            pricePerLot: import("@prisma/client/runtime/library").Decimal;
            currency: string;
            features: import("@prisma/client/runtime/library").JsonValue;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
        };
        _count: {
            complexes: number;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyName: string;
        legalId: string | null;
        contactEmail: string;
        contactPhone: string | null;
        city: string | null;
        country: string;
        status: import(".prisma/client").$Enums.TenantStatus;
        trialEndsAt: Date | null;
        planId: string;
    })[]>;
    findOne(id: string): Promise<{
        plan: {
            id: string;
            code: string;
            name: string;
            tier: import(".prisma/client").$Enums.PlanTier;
            fixedPrice: import("@prisma/client/runtime/library").Decimal;
            pricePerLot: import("@prisma/client/runtime/library").Decimal;
            currency: string;
            features: import("@prisma/client/runtime/library").JsonValue;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
        };
        _count: {
            userRoles: number;
            complexes: number;
        };
        featureToggles: {
            id: string;
            tenantId: string;
            featureKey: string;
            enabled: boolean;
            activatedAt: Date | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyName: string;
        legalId: string | null;
        contactEmail: string;
        contactPhone: string | null;
        city: string | null;
        country: string;
        status: import(".prisma/client").$Enums.TenantStatus;
        trialEndsAt: Date | null;
        planId: string;
    }>;
    updateFeature(id: string, dto: UpdateFeatureToggleDto): Promise<{
        id: string;
        tenantId: string;
        featureKey: string;
        enabled: boolean;
        activatedAt: Date | null;
    }>;
    suspend(id: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyName: string;
        legalId: string | null;
        contactEmail: string;
        contactPhone: string | null;
        city: string | null;
        country: string;
        status: import(".prisma/client").$Enums.TenantStatus;
        trialEndsAt: Date | null;
        planId: string;
    }>;
    activate(id: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyName: string;
        legalId: string | null;
        contactEmail: string;
        contactPhone: string | null;
        city: string | null;
        country: string;
        status: import(".prisma/client").$Enums.TenantStatus;
        trialEndsAt: Date | null;
        planId: string;
    }>;
    generateInvoice(id: string): Promise<{
        id: string;
        currency: string;
        createdAt: Date;
        status: string;
        tenantId: string;
        dueDate: Date;
        amount: import("@prisma/client/runtime/library").Decimal;
        periodStart: Date;
        periodEnd: Date;
        lotsCount: number;
        pdfUrl: string | null;
        paidAt: Date | null;
    }>;
}
