declare module "windows.devices.gpio" { export enum GpioSharingMode { exclusive, sharedReadOnly, } export enum GpioOpenStatus { pinOpened, pinUnavailable, sharingViolation, } export enum GpioPinDriveMode { input, output, inputPullUp, inputPullDown, outputOpenDrain, outputOpenDrainPullUp, outputOpenSource, outputOpenSourcePullDown, } export enum GpioPinValue { low, high, } export enum GpioPinEdge { fallingEdge, risingEdge, } export class GpioPinValueChangedEventArgs { edge: GpioPinEdge; constructor(); } export class GpioPin { debounceTimeout: Number; pinNumber: Number; sharingMode: GpioSharingMode; constructor(); isDriveModeSupported(driveMode: GpioPinDriveMode): Boolean; getDriveMode(): GpioPinDriveMode; setDriveMode(value: GpioPinDriveMode): void; write(value: GpioPinValue): void; read(): GpioPinValue; close(): void; addListener(type: "ValueChanged", listener: (ev: Event) => void): void ; removeListener(type: "ValueChanged", listener: (ev: Event) => void): void ; on(type: "ValueChanged", listener: (ev: Event) => void): void ; off(type: "ValueChanged", listener: (ev: Event) => void): void ; addListener(type: string, listener: (ev: Event) => void): void ; removeListener(type: string, listener: (ev: Event) => void): void ; on(type: string, listener: (ev: Event) => void): void ; off(type: string, listener: (ev: Event) => void): void ; } export class GpioController { pinCount: Number; constructor(); static getControllersAsync(provider: Object, callback: (error: Error, result: Object) => void): void ; static getDefaultAsync(callback: (error: Error, result: GpioController) => void): void ; static getDefault(): GpioController; openPin(pinNumber: Number): GpioPin; openPin(pinNumber: Number, sharingMode: GpioSharingMode): GpioPin; tryOpenPin(pinNumber: Number, sharingMode: GpioSharingMode, pin: Object, openStatus: GpioOpenStatus): Boolean; } }