import { ResidentsService } from './residents.service';
import { CreateResidentDto } from './dto/create-resident.dto';
import { AuthenticatedUser } from '../../common/decorators/current-user.decorator';
export declare class ResidentsController {
    private readonly residentsService;
    constructor(residentsService: ResidentsService);
    create(user: AuthenticatedUser, 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;
    }>;
    list(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;
    }>;
}
