declare type SPI = { find(pin: Pin): SPIInstance | undefined; new (): SPIInstance; }; type TOrArray = T | TOrArray[]; type TArrObj = T | TArrObj[] | { data: TArrObj; count: number }; type NumStrArr = TOrArray; declare type SPIInstance = { send(data: TArrObj, nss_pin: number): any; send4bit(data: NumStrArr, bit0: number, bit1: number, nss_pin: number): void; send8bit(data: NumStrArr, bit0: number, bit1: number, nss_pin: number): void; setup(options: { sck?: Pin; miso?: Pin; mosi?: Pin; baud?: number; mode?: 0 | 1 | 2 | 3; order?: "msb" | "lsb"; bits?: number; }): void; write(...data: Array): void; };