import { RTEvent } from "./command"; import { User } from "../models/User"; import { Attendance } from "../models/Attendance"; export interface DeviceInfo { userCounts: number; logCounts: number; logCapacity: number; } export type UserData28 = Omit; export interface RecordData16 { record_time: Date; user_id: string; ip?: string; } export interface AlarmEvent { /** Misoperation [0x3A], Tamper [0x37], Exit Button [0x35] */ alarm_type: any; /** indicates cause, 20 = Duress, 22 = Passback */ alarm_cause: any; /** user serial number */ user_uid: any; /** matching way */ match_type: any; } export interface EnrolledFingerEvent { /** Error code */ result: number; /** finger size */ size: number; /** user pin, storedAsString */ pin: string; /** finger index */ fid: number; } export interface FingerScoreEvent { /** a number between 0 [0x00] and 100 [0x64] indicating the quality ofThe finger during enrolling process */ score: number; } export type RealTimeLog = { event: RTEvent; payload?: RecordData16 | EnrolledFingerEvent | AlarmEvent | FingerScoreEvent; }; interface UDPHeader { commandId: number; checkSum: number; sessionId: number; replyId: number; } interface TCPHeader extends UDPHeader { payloadSize: number; } export type FreeSizes = { /** Number of users */ userCounts: number; /** Number of logs */ logCounts: number; /** Number of fingerprints */ fingerCount: number; /** Number of admins */ adminCount: number; /** Number or opLogs, maybe access control events? */ opLogCount: number; /** Capacity of logs in bytes */ logCapacity: number; /** Capacity of fingerprints */ fingerCapacity: number; /** Capacity of users */ userCapacity: number; /** Capacity of oplog */ attLogCapacity: number; /** Number of available finger templates */ fingerAvailable: number; /** Number of available Users */ userAvailable: number; /** Number of attendanceLog available */ attLogAvailable: number; /** Number of faces */ faceCount: number; /** Capacity of faces */ faceCapacity: number; }; export declare const createUDPHeader: (command: number, sessionId: number, replyId: number, data: any) => Buffer; export declare const createTCPHeader: (command: number, sessionId: number, replyId: number, data: any) => Buffer; export declare const removeTcpHeader: (buf: Buffer) => Buffer; export declare const parseTimeToDate: (time: number) => Date; export declare const decodeUserData28: (userData: Buffer) => UserData28; export declare const decodeUserData72: (userData: Buffer) => User; export declare const decodeRecordData40: (recordData: Buffer) => Attendance; export declare const decodeRecordData16: (recordData: Buffer) => RecordData16; export declare const decodeRecordRealTimeLog18: (recordData: Buffer) => RecordData16; export declare const decodeUDPHeader: (header: Buffer) => UDPHeader; export declare const decodeTCPHeader: (header: Buffer) => TCPHeader; export declare const exportErrorMessage: (commandValue: number) => string; export declare const checkNotEventTCP: (data: Buffer) => boolean; export declare const checkNotEventUDP: (data: Buffer) => boolean; export declare const decodeRTEvent: (data: Buffer) => { event: RTEvent.EF_FINGER; payload?: undefined; } | { event: RTEvent.EF_FPFTR; payload: FingerScoreEvent; }; export declare const decodeRecordRealTimeLog52: (recordData: Buffer) => RecordData16; export declare const authKey: (comKey: number, sessionId: number) => number[]; /** Some Tcp packets receibed by the socket client can be merged in one single data event by the OS, and we need to split to handle correctly */ export declare const splitTcpPackets: (data: Buffer) => Buffer[]; export {};