import { PrismaService } from '../../prisma/prisma.service';
import { UsersService } from '../users/users.service';
import { CreateResidentDto } from './dto/create-resident.dto';
export declare class ResidentsService {
    private readonly prisma;
    private readonly usersService;
    constructor(prisma: PrismaService, usersService: UsersService);
    create(tenantId: string, dto: CreateResidentDto): Promise<{
        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;
        };
        lot: {
            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;
        };
    } & {
        id: string;
        role: import(".prisma/client").$Enums.ResidentRole;
        createdAt: Date;
        userId: string;
        lotId: string;
        startDate: Date;
        endDate: Date | null;
        isPrimary: boolean;
    }>;
    findByLot(lotId: string): import(".prisma/client").Prisma.PrismaPromise<({
        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;
    })[]>;
    endResidency(id: string): Promise<{
        id: string;
        role: import(".prisma/client").$Enums.ResidentRole;
        createdAt: Date;
        userId: string;
        lotId: string;
        startDate: Date;
        endDate: Date | null;
        isPrimary: boolean;
    }>;
}
