import { EmployeeRepository } from "../repositories/EmployeeRepository.js";
import { Prisma } from "../generated/prisma/client.js";
export interface EmployeeImportRowResult {
    row: number;
    name: string;
    status: "imported" | "skipped";
    reason?: string;
}
export declare class EmployeeService {
    private readonly employeeRepository;
    constructor(employeeRepository?: EmployeeRepository);
    create(data: Prisma.EmployeeUncheckedCreateInput): Promise<{
        name: string;
        id: bigint;
        mobile: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        employeeCode: string;
        designation: string | null;
    }>;
    findAll(skip?: number, take?: number, search?: string, status?: boolean): Promise<{
        items: {
            name: string;
            id: bigint;
            mobile: string | null;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            createdBy: bigint | null;
            deletedAt: Date | null;
            employeeCode: string;
            designation: string | null;
        }[];
        total: number;
    }>;
    findById(id: bigint): Promise<{
        name: string;
        id: bigint;
        mobile: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        employeeCode: string;
        designation: string | null;
    } | null>;
    update(id: bigint, data: Prisma.EmployeeUncheckedUpdateInput): Promise<{
        name: string;
        id: bigint;
        mobile: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        employeeCode: string;
        designation: string | null;
    }>;
    delete(id: bigint): Promise<{
        name: string;
        id: bigint;
        mobile: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        createdBy: bigint | null;
        deletedAt: Date | null;
        employeeCode: string;
        designation: string | null;
    }>;
    generateImportTemplate(): Promise<Buffer>;
    importBulk(fileBuffer: Buffer, createdBy?: bigint): Promise<{
        message: string;
        importedCount: number;
        skippedCount: number;
        results: EmployeeImportRowResult[];
    }>;
}
//# sourceMappingURL=EmployeeService.d.ts.map