import { EventEmitter } from "node:events"; /** ポート番号 */ type PortNumber = number; /** ポート名 */ type PortName = string; /** ピン名 */ type PinName = string; /** 入出力方向 */ type DirectionMode = "in" | "out"; /** GPIO 値 0: LOW / 1: HIGH */ type GPIOValue = 0 | 1; /** * GPIO チェンジイベント */ interface GPIOChangeEvent { /** 入出力値 */ readonly value: GPIOValue; /** ポート */ readonly port: GPIOPort; } /** * GPIO チェンジイベントハンドラ */ interface GPIOChangeEventHandler { /** イベント */ (event: GPIOChangeEvent): void; } /** * GPIO */ export declare class GPIOAccess extends EventEmitter { /** ポート */ private readonly _ports; /** GPIO チェンジイベントハンドラ */ onchange: GPIOChangeEventHandler | undefined; /** * Creates an instance of GPIOAccess. * @param ports ポート番号 */ constructor(ports?: GPIOPortMap); /** * ポート情報取得処理 * @return 現在のポート情報 */ get ports(): GPIOPortMap; /** * Unexport all exported GPIO ports. * 全てのポート開放をする * @return ポート開放結果 */ unexportAll(): Promise; } /** * Different from Web GPIO API specification. */ export declare class GPIOPortMap extends Map { } /** * GPIO ポート */ export declare class GPIOPort extends EventEmitter { /** ポート番号 */ private readonly _portNumber; /** ポーリング間隔 */ private readonly _pollingInterval; /** 入出力方向 */ private _direction; /** エクスポート */ private _exported; /** エクスポートリトライ回数 */ private _exportRetry; /** 入出力値 */ private _value; /** タイムアウト値 */ private _timeout; /** GPIO チェンジイベントハンドラ */ onchange: GPIOChangeEventHandler | undefined; /** * Creates an instance of GPIOPort. * @param portNumber ポート番号 */ constructor(portNumber: PortNumber); /** * ポート番号取得処理 * @return 現在のポート番号 */ get portNumber(): PortNumber; /** * ポート名取得処理 * @return 現在のポート名 */ get portName(): PortName; /** * ピン名取得処理 * @return 現在のピン名 */ get pinName(): PinName; /** * GPIO 入出力方向 getter * @return 現在のGPIO 入出力方向 */ get direction(): DirectionMode; /** * GPIO export の有無 getter * @return 現在のGPIO 出力 */ get exported(): boolean; /** * GPIO 出力処理 * @param direction GPIO 入出力方向 * @return export 処理の完了 */ export(direction: DirectionMode): Promise; /** * Unexport exported GPIO ports. * ポート開放をする * @return ポート開放処理の完了 */ unexport(): Promise; /** * 入力値読み取り処理 * @return 読み取り処理の完了 */ read(): Promise; /** * 出力値書き込み処理 * @return 読み取り処理の完了 */ write(value: GPIOValue): Promise; } /** * 無効なアクセスエラー */ export declare class InvalidAccessError extends Error { /** * Creates an instance of InvalidAccessError. * @param message エラーメッセージ */ constructor(message: string); } /** * 操作エラー */ export declare class OperationError extends Error { /** * Creates an instance of OperationError. * @param message エラーメッセージ */ constructor(message: string); } export declare function requestGPIOAccess(): Promise; export {};