import { PrismaService } from '../../prisma/prisma.service';
import { CreateLotDto } from './dto/create-lot.dto';
import { SetTantiemesDto } from './dto/set-tantiemes.dto';
import { CreateVehicleDto } from './dto/create-vehicle.dto';
export declare class LotsService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    create(dto: CreateLotDto): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        complexId: string;
        spatialUnitId: string;
        lotNumber: string;
        type: import(".prisma/client").$Enums.LotType;
        surfaceM2: import("@prisma/client/runtime/library").Decimal | null;
        tantiemesGeneral: number;
    }>;
    findByComplex(complexId: string): import(".prisma/client").Prisma.PrismaPromise<({
        residents: ({
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                status: import(".prisma/client").$Enums.UserStatus;
                email: string;
                phone: string | null;
                passwordHash: string;
                firstName: string | null;
                lastName: string | null;
                language: string;
                mfaSecret: string | null;
                mfaEnabled: boolean;
                lastLoginAt: Date | null;
            };
        } & {
            id: string;
            role: import(".prisma/client").$Enums.ResidentRole;
            createdAt: Date;
            userId: string;
            lotId: string;
            startDate: Date;
            endDate: Date | null;
            isPrimary: boolean;
        })[];
        spatialUnit: {
            id: string;
            code: string;
            label: string | null;
            createdAt: Date;
            complexId: string;
            type: import(".prisma/client").$Enums.SpatialUnitType;
            path: string | null;
            parentId: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        complexId: string;
        spatialUnitId: string;
        lotNumber: string;
        type: import(".prisma/client").$Enums.LotType;
        surfaceM2: import("@prisma/client/runtime/library").Decimal | null;
        tantiemesGeneral: number;
    })[]>;
    findOne(id: string): Promise<{
        residents: ({
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                status: import(".prisma/client").$Enums.UserStatus;
                email: string;
                phone: string | null;
                passwordHash: string;
                firstName: string | null;
                lastName: string | null;
                language: string;
                mfaSecret: string | null;
                mfaEnabled: boolean;
                lastLoginAt: Date | null;
            };
        } & {
            id: string;
            role: import(".prisma/client").$Enums.ResidentRole;
            createdAt: Date;
            userId: string;
            lotId: string;
            startDate: Date;
            endDate: Date | null;
            isPrimary: boolean;
        })[];
        spatialUnit: {
            id: string;
            code: string;
            label: string | null;
            createdAt: Date;
            complexId: string;
            type: import(".prisma/client").$Enums.SpatialUnitType;
            path: string | null;
            parentId: string | null;
        };
        tantiemes: ({
            repartitionKey: {
                id: string;
                code: string;
                label: string;
                description: string | null;
                createdAt: Date;
                complexId: string;
                type: import(".prisma/client").$Enums.RepartitionKeyType;
                scopeSpatialUnitId: string | null;
            };
        } & {
            id: string;
            lotId: string;
            repartitionKeyId: string;
            quota: number;
        })[];
        vehicles: {
            id: string;
            createdAt: Date;
            lotId: string;
            residentId: string;
            plateNumber: string;
            brand: string | null;
            model: string | null;
            color: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        complexId: string;
        spatialUnitId: string;
        lotNumber: string;
        type: import(".prisma/client").$Enums.LotType;
        surfaceM2: import("@prisma/client/runtime/library").Decimal | null;
        tantiemesGeneral: number;
    }>;
    setTantiemes(lotId: string, dto: SetTantiemesDto): Promise<{
        residents: ({
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                status: import(".prisma/client").$Enums.UserStatus;
                email: string;
                phone: string | null;
                passwordHash: string;
                firstName: string | null;
                lastName: string | null;
                language: string;
                mfaSecret: string | null;
                mfaEnabled: boolean;
                lastLoginAt: Date | null;
            };
        } & {
            id: string;
            role: import(".prisma/client").$Enums.ResidentRole;
            createdAt: Date;
            userId: string;
            lotId: string;
            startDate: Date;
            endDate: Date | null;
            isPrimary: boolean;
        })[];
        spatialUnit: {
            id: string;
            code: string;
            label: string | null;
            createdAt: Date;
            complexId: string;
            type: import(".prisma/client").$Enums.SpatialUnitType;
            path: string | null;
            parentId: string | null;
        };
        tantiemes: ({
            repartitionKey: {
                id: string;
                code: string;
                label: string;
                description: string | null;
                createdAt: Date;
                complexId: string;
                type: import(".prisma/client").$Enums.RepartitionKeyType;
                scopeSpatialUnitId: string | null;
            };
        } & {
            id: string;
            lotId: string;
            repartitionKeyId: string;
            quota: number;
        })[];
        vehicles: {
            id: string;
            createdAt: Date;
            lotId: string;
            residentId: string;
            plateNumber: string;
            brand: string | null;
            model: string | null;
            color: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        complexId: string;
        spatialUnitId: string;
        lotNumber: string;
        type: import(".prisma/client").$Enums.LotType;
        surfaceM2: import("@prisma/client/runtime/library").Decimal | null;
        tantiemesGeneral: number;
    }>;
    listVehicles(lotId: string): import(".prisma/client").Prisma.PrismaPromise<({
        resident: {
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                status: import(".prisma/client").$Enums.UserStatus;
                email: string;
                phone: string | null;
                passwordHash: string;
                firstName: string | null;
                lastName: string | null;
                language: string;
                mfaSecret: string | null;
                mfaEnabled: boolean;
                lastLoginAt: Date | null;
            };
        } & {
            id: string;
            role: import(".prisma/client").$Enums.ResidentRole;
            createdAt: Date;
            userId: string;
            lotId: string;
            startDate: Date;
            endDate: Date | null;
            isPrimary: boolean;
        };
    } & {
        id: string;
        createdAt: Date;
        lotId: string;
        residentId: string;
        plateNumber: string;
        brand: string | null;
        model: string | null;
        color: string | null;
    })[]>;
    addVehicle(lotId: string, dto: CreateVehicleDto): Promise<{
        id: string;
        createdAt: Date;
        lotId: string;
        residentId: string;
        plateNumber: string;
        brand: string | null;
        model: string | null;
        color: string | null;
    }>;
    removeVehicle(vehicleId: string): Promise<{
        success: boolean;
    }>;
    update(id: string, dto: CreateLotDto): Promise<{
        spatialUnit: {
            id: string;
            code: string;
            label: string | null;
            createdAt: Date;
            complexId: string;
            type: import(".prisma/client").$Enums.SpatialUnitType;
            path: string | null;
            parentId: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        complexId: string;
        spatialUnitId: string;
        lotNumber: string;
        type: import(".prisma/client").$Enums.LotType;
        surfaceM2: import("@prisma/client/runtime/library").Decimal | null;
        tantiemesGeneral: number;
    }>;
    remove(id: string): Promise<{
        deleted: boolean;
    }>;
}
