import { PrismaService } from '../prisma/prisma.service';
export declare class EmployeesService {
    private prisma;
    constructor(prisma: PrismaService);
    findAll(params?: {
        departmentId?: number;
        shiftId?: number;
        status?: string;
    }): Promise<({
        department: {
            id: number;
            name: string;
            code: string | null;
            description: string | null;
        } | null;
        shift: {
            id: number;
            name: string;
            startTime: string;
            endTime: string;
            breakMinutes: number;
            workDays: string;
        } | null;
    } & {
        id: number;
        empNo: string;
        firstName: string;
        lastName: string;
        email: string | null;
        phone: string | null;
        nationalId: string | null;
        hireDate: Date | null;
        birthDate: Date | null;
        address: string | null;
        salary: number;
        departmentId: number | null;
        shiftId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    })[]>;
    findById(id: number): Promise<{
        department: {
            id: number;
            name: string;
            code: string | null;
            description: string | null;
        } | null;
        shift: {
            id: number;
            name: string;
            startTime: string;
            endTime: string;
            breakMinutes: number;
            workDays: string;
        } | null;
        attendances: {
            id: number;
            punchTime: Date;
            employeeId: number;
            punchType: string;
            deviceId: number | null;
            source: string;
        }[];
    } & {
        id: number;
        empNo: string;
        firstName: string;
        lastName: string;
        email: string | null;
        phone: string | null;
        nationalId: string | null;
        hireDate: Date | null;
        birthDate: Date | null;
        address: string | null;
        salary: number;
        departmentId: number | null;
        shiftId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findByEmpNo(empNo: string): Promise<({
        department: {
            id: number;
            name: string;
            code: string | null;
            description: string | null;
        } | null;
        shift: {
            id: number;
            name: string;
            startTime: string;
            endTime: string;
            breakMinutes: number;
            workDays: string;
        } | null;
    } & {
        id: number;
        empNo: string;
        firstName: string;
        lastName: string;
        email: string | null;
        phone: string | null;
        nationalId: string | null;
        hireDate: Date | null;
        birthDate: Date | null;
        address: string | null;
        salary: number;
        departmentId: number | null;
        shiftId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }) | null>;
    create(data: {
        empNo: string;
        firstName: string;
        lastName: string;
        email?: string;
        phone?: string;
        nationalId?: string;
        hireDate?: Date;
        birthDate?: Date;
        address?: string;
        salary?: number;
        departmentId?: number;
        shiftId?: number;
    }): Promise<{
        department: {
            id: number;
            name: string;
            code: string | null;
            description: string | null;
        } | null;
        shift: {
            id: number;
            name: string;
            startTime: string;
            endTime: string;
            breakMinutes: number;
            workDays: string;
        } | null;
    } & {
        id: number;
        empNo: string;
        firstName: string;
        lastName: string;
        email: string | null;
        phone: string | null;
        nationalId: string | null;
        hireDate: Date | null;
        birthDate: Date | null;
        address: string | null;
        salary: number;
        departmentId: number | null;
        shiftId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
    update(id: number, data: {
        empNo?: string;
        firstName?: string;
        lastName?: string;
        email?: string;
        phone?: string;
        nationalId?: string;
        hireDate?: Date;
        birthDate?: Date;
        address?: string;
        salary?: number;
        departmentId?: number;
        shiftId?: number;
        status?: string;
    }): Promise<{
        department: {
            id: number;
            name: string;
            code: string | null;
            description: string | null;
        } | null;
        shift: {
            id: number;
            name: string;
            startTime: string;
            endTime: string;
            breakMinutes: number;
            workDays: string;
        } | null;
    } & {
        id: number;
        empNo: string;
        firstName: string;
        lastName: string;
        email: string | null;
        phone: string | null;
        nationalId: string | null;
        hireDate: Date | null;
        birthDate: Date | null;
        address: string | null;
        salary: number;
        departmentId: number | null;
        shiftId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
    delete(id: number): Promise<{
        id: number;
        empNo: string;
        firstName: string;
        lastName: string;
        email: string | null;
        phone: string | null;
        nationalId: string | null;
        hireDate: Date | null;
        birthDate: Date | null;
        address: string | null;
        salary: number;
        departmentId: number | null;
        shiftId: number | null;
        status: string;
        createdAt: Date;
        updatedAt: Date;
    }>;
}
