import { CatalogsService } from '../catalogs/catalogs.service.js';
import { DataStoreService } from '../shared/data-store.service.js';
import { AwsService } from '../shared/aws.service.js';
import type { PersistenceService } from '../shared/persistence.js';
import { Employee } from '../shared/domain.js';
import { EncryptionService } from '../shared/encryption.service.js';
interface CreateEmployeeBody {
    employeeNumber?: unknown;
    fullName?: unknown;
    department?: unknown;
    primaryZoneId?: unknown;
    zoneIds?: unknown;
    positionId?: unknown;
    stationId?: unknown;
    status?: unknown;
    canAccessMobileApp?: unknown;
    mobileUsername?: unknown;
    mobilePassword?: unknown;
    isMobileSupervisor?: unknown;
    isFreeAttendance?: unknown;
}
interface UpdateEmployeeStatusBody {
    status?: unknown;
}
interface UpdateEmployeeBody {
    fullName?: unknown;
    department?: unknown;
    primaryZoneId?: unknown;
    zoneIds?: unknown;
    positionId?: unknown;
    stationId?: unknown;
    status?: unknown;
    canAccessMobileApp?: unknown;
    mobileUsername?: unknown;
    mobilePassword?: unknown;
    isMobileSupervisor?: unknown;
    isFreeAttendance?: unknown;
}
export declare class EmployeesService {
    private readonly store;
    private readonly catalogsService;
    private readonly awsService;
    private readonly persistence;
    private readonly encryption;
    constructor(store: DataStoreService, catalogsService: CatalogsService, awsService: AwsService, persistence: PersistenceService, encryption: EncryptionService);
    findAll(status?: string): Employee[];
    findByEmployeeNumber(employeeNumber: string): Employee;
    findActiveWithFaceReference(employeeNumber: string): Employee;
    findActiveEmployee(employeeNumber: string): Employee;
    private applyMobileAccess;
    create(body: CreateEmployeeBody): Promise<Employee>;
    updateStatus(employeeNumber: string, body: UpdateEmployeeStatusBody): Promise<Employee>;
    update(employeeNumber: string, body: UpdateEmployeeBody): Promise<Employee>;
    remove(employeeNumber: string): Promise<{
        deleted: true;
    }>;
    enroll(employeeNumber: string): Promise<Employee>;
    enrollWithFacialRecognition(employeeNumber: string, imageBuffer: Buffer, mimeType: string): Promise<Employee>;
    getEmployeePhotoUrl(employeeNumber: string): Promise<{
        photoUrl: string | null;
    }>;
    identifyEmployee(employeeNumber?: string, simulatedFaceId?: string): {
        employee: Employee;
        confidence: number;
    };
    private resolvePositionId;
    private resolveStationId;
    private resolveDepartment;
    private parseStatus;
}
export {};
