-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnfc-pcsc.d.ts
More file actions
64 lines (52 loc) · 2.04 KB
/
nfc-pcsc.d.ts
File metadata and controls
64 lines (52 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
declare module "nfc-pcsc" {
export type ListenerSignature<L> = {
[E in keyof L]: (...args: any[]) => any;
};
export type DefaultListener = {
[k: string]: (...args: any[]) => any;
};
export class TypedEmitter<L extends ListenerSignature<L> = DefaultListener> {
static defaultMaxListeners: number;
addListener<U extends keyof L>(event: U, listener: L[U]): this;
prependListener<U extends keyof L>(event: U, listener: L[U]): this;
prependOnceListener<U extends keyof L>(event: U, listener: L[U]): this;
removeListener<U extends keyof L>(event: U, listener: L[U]): this;
removeAllListeners(event?: keyof L): this;
once<U extends keyof L>(event: U, listener: L[U]): this;
on<U extends keyof L>(event: U, listener: L[U]): this;
off<U extends keyof L>(event: U, listener: L[U]): this;
emit<U extends keyof L>(event: U, ...args: Parameters<L[U]>): boolean;
eventNames<U extends keyof L>(): U[];
listenerCount(type: keyof L): number;
listeners<U extends keyof L>(type: U): L[U][];
rawListeners<U extends keyof L>(type: U): L[U][];
getMaxListeners(): number;
setMaxListeners(n: number): this;
}
type Type = "TAG_ISO_14443_3" | "TAG_ISO_14443_4";
const KEY_TYPE_A = 0x60;
const KEY_TYPE_B = 0x61;
interface Card {
type: Type;
standard: Type;
uid?: string;
data?: Buffer;
}
interface ReaderEmitter {
card: (x: Card) => void;
"card.off": (x: Card) => void;
error: (x: Error) => void;
end: () => void;
}
export class Reader extends TypedEmitter<ReaderEmitter> {
get name(): string;
authenticate(blockNumber: number, keyType: number, key: string, obsolete?: boolean): Promise<boolean>;
read(blockNumber: number, length: number, blockSize?: number, packetSize?: number, readClass?: number): Promise<Buffer>;
write(blockNumber: number, data: Buffer, blockSize?: number): Promise<void>;
}
interface NFCEmitter {
reader: (reader: Reader) => void;
error: (error: Error) => void;
}
export class NFC extends TypedEmitter<NFCEmitter> {}
}