93 lines
2.6 KiB
TypeScript
93 lines
2.6 KiB
TypeScript
import { EventEmitter } from "events";
|
|
|
|
type ConnectOptions = {
|
|
share_mode?: number;
|
|
protocol?: number;
|
|
};
|
|
|
|
type Status = {
|
|
atr?: Buffer;
|
|
state: number;
|
|
};
|
|
|
|
type AnyOrNothing = any | undefined | null;
|
|
|
|
interface PCSCLite extends EventEmitter {
|
|
on(type: "error", listener: (error: any) => void): this;
|
|
once(type: "error", listener: (error: any) => void): this;
|
|
on(type: "reader", listener: (reader: CardReader) => void): this;
|
|
once(type: "reader", listener: (reader: CardReader) => void): this;
|
|
close(): void;
|
|
}
|
|
|
|
interface CardReader extends EventEmitter {
|
|
// Share Mode
|
|
SCARD_SHARE_SHARED: number;
|
|
SCARD_SHARE_EXCLUSIVE: number;
|
|
SCARD_SHARE_DIRECT: number;
|
|
// Protocol
|
|
SCARD_PROTOCOL_T0: number;
|
|
SCARD_PROTOCOL_T1: number;
|
|
SCARD_PROTOCOL_RAW: number;
|
|
// State
|
|
SCARD_STATE_UNAWARE: number;
|
|
SCARD_STATE_IGNORE: number;
|
|
SCARD_STATE_CHANGED: number;
|
|
SCARD_STATE_UNKNOWN: number;
|
|
SCARD_STATE_UNAVAILABLE: number;
|
|
SCARD_STATE_EMPTY: number;
|
|
SCARD_STATE_PRESENT: number;
|
|
SCARD_STATE_ATRMATCH: number;
|
|
SCARD_STATE_EXCLUSIVE: number;
|
|
SCARD_STATE_INUSE: number;
|
|
SCARD_STATE_MUTE: number;
|
|
// Disconnect disposition
|
|
SCARD_LEAVE_CARD: number;
|
|
SCARD_RESET_CARD: number;
|
|
SCARD_UNPOWER_CARD: number;
|
|
SCARD_EJECT_CARD: number;
|
|
name: string;
|
|
state: number;
|
|
connected: boolean;
|
|
on(type: "error", listener: (this: CardReader, error: any) => void): this;
|
|
once(type: "error", listener: (this: CardReader, error: any) => void): this;
|
|
on(type: "end", listener: (this: CardReader) => void): this;
|
|
once(type: "end", listener: (this: CardReader) => void): this;
|
|
on(
|
|
type: "status",
|
|
listener: (this: CardReader, status: Status) => void
|
|
): this;
|
|
once(
|
|
type: "status",
|
|
listener: (this: CardReader, status: Status) => void
|
|
): this;
|
|
SCARD_CTL_CODE(code: number): number;
|
|
get_status(
|
|
cb: (err: AnyOrNothing, state: number, atr?: Buffer) => void
|
|
): void;
|
|
connect(callback: (err: AnyOrNothing, protocol: number) => void): void;
|
|
connect(
|
|
options: ConnectOptions,
|
|
callback: (err: AnyOrNothing, protocol: number) => void
|
|
): void;
|
|
disconnect(callback: (err: AnyOrNothing) => void): void;
|
|
disconnect(disposition: number, callback: (err: AnyOrNothing) => void): void;
|
|
transmit(
|
|
data: Buffer,
|
|
res_len: number,
|
|
protocol: number,
|
|
cb: (err: AnyOrNothing, response: Buffer) => void
|
|
): void;
|
|
control(
|
|
data: Buffer,
|
|
control_code: number,
|
|
res_len: number,
|
|
cb: (err: AnyOrNothing, response: Buffer) => void
|
|
): void;
|
|
close(): void;
|
|
}
|
|
|
|
declare function pcsc(): PCSCLite;
|
|
|
|
export = pcsc;
|