import { ZTCP } from "./ztcp"; import { ZUDP } from "./zudp"; import { User } from "./models/User"; import { Finger } from "./models/Finger"; import { Attendance } from "./models/Attendance"; import { RecordData16, UserData28, DeviceInfo, FreeSizes } from "./helper/utils"; export default class Zklib { set connectionType(value: "tcp" | "udp" | null); private _connectionType; ztcp: ZTCP; zudp: ZUDP; private interval; private timer; private isBusy; private ip; private comm_key; get connectionType(): "tcp" | "udp" | null; /** * Creates a new Zkteco device connection instance * @param ip IP address of device * @param port Port number of device * @param timeout Connection timeout in milliseconds * @param inport Required only for UDP connection (default: 10000) * @param comm_key Communication key of device (default: 0) * @param verbose Console log some data */ constructor(ip: string, port?: number, timeout?: number, inport?: number, comm_key?: number, verbose?: boolean); private functionWrapper; createSocket(cbErr?: (err: Error) => void, cbClose?: (type: string) => void): Promise; getUsers(): Promise<{ data: User[] | UserData28[]; }>; getTime(): Promise; setTime(t: Date | string): Promise; voiceTest(): Promise; getProductTime(): Promise; getVendor(): Promise; getMacAddress(): Promise; getSerialNumber(): Promise; getDeviceVersion(): Promise; getDeviceName(): Promise; getPlatform(): Promise; getOS(): Promise; getWorkCode(): Promise; getPIN(): Promise; getFaceOn(): Promise; getSSR(): Promise; getFirmware(): Promise; /** Update or create a user if user id/pin not exists * @param user_id {string} user id/pin for customer * @param name {string} user name * @param password {string} user password * @param role {number} role/privilege id number * @param cardno {number} card number/id */ setUser(user_id: string, name: string, password: string, role?: number, cardno?: number): Promise; /** * Delete user by a given user id/pin * @param user_id {string} */ deleteUser(user_id: string): Promise; getAttendanceSize(): Promise; getAttendances(cb?: (progress: number, total: number) => void): Promise<{ data: Attendance[] | RecordData16[]; err?: Error | null; }>; getRealTimeLogs(cb: (log: any) => void): Promise; getTemplates(): Promise>; /** * Get a user template for a given user id/pin and finger id * @param user_id {string} user id/pin * @param fid {number} finger index */ getUserTemplate(user_id: string, fid: number): Promise; /** * Upload a single fingerprint for a given user id * @param user_id {string} user id/pin for customer * @param fingerTemplate {string} finger template in base64 string * @param fid {number} finger id is a number between 0 and 9 * @param fp_valid {number} finger flag. e.g., valid=1, duress=3 */ uploadFingerTemplate(user_id: string, fingerTemplate: string, fid: number, fp_valid: number): Promise; /** * save user and template * * @param {string} user_id - user id for customer * @param {Finger[]} fingers - Array of finger class */ saveUserTemplate(user_id: string, fingers?: Finger[]): Promise; /** * Delete a single finger template by user id and finger index * @param user_id {string} user id/pin for customer * @param fid {number} finger index */ deleteFinger(user_id?: string, fid?: number): Promise; /** * Start to enroll a finger template * @param user_id {string} user id/pin for customer * @param temp_id {number} finger index */ enrollUser(user_id: string, temp_id: number): Promise; verifyUser(user_id: string): Promise; restartDevice(): Promise; getSizes(): Promise; disconnect(): Promise; freeData(): Promise; disableDevice(): Promise; enableDevice(): Promise; getInfo(): Promise; clearAttendanceLog(): Promise; clearData(): Promise; executeCmd(command: number, data?: string | Buffer): Promise; getNetworkParams(): Promise<{ IPAddress: string; NetMask: string; GATEIPAddress: string; TCPPort: string; }>; } export type { Attendance, User, Finger, DeviceInfo, Zklib };