UNPKG

@elgato-stream-deck/core

Version:

An npm module for interfacing with the Elgato Stream Deck

82 lines 4.83 kB
import { EventEmitter } from 'eventemitter3'; import type { HIDDevice, HIDDeviceInfo } from '../hid-device.js'; import type { DeviceModelId, Dimension, KeyIndex } from '../id.js'; import type { FillImageOptions, FillPanelDimensionsOptions, FillPanelOptions, StreamDeck, StreamDeckEvents, StreamDeckTcpChildDeviceInfo } from '../types.js'; import type { ButtonsLcdDisplayService } from '../services/buttonsLcdDisplay/interface.js'; import type { StreamDeckButtonControlDefinition, StreamDeckControlDefinition } from '../controlDefinition.js'; import type { LcdSegmentDisplayService } from '../services/lcdSegmentDisplay/interface.js'; import type { PropertiesService } from '../services/properties/interface.js'; import type { CallbackHook } from '../services/callback-hook.js'; import type { StreamDeckInputService } from '../services/input/interface.js'; import type { EncoderLedService } from '../services/encoderLed/interface.js'; import { type PreparedBuffer } from '../preparedBuffer.js'; export type EncodeJPEGHelper = (buffer: Uint8Array, width: number, height: number) => Promise<Uint8Array>; export interface OpenStreamDeckOptions { encodeJPEG?: EncodeJPEGHelper; } export type StreamDeckProperties = Readonly<{ MODEL: DeviceModelId; PRODUCT_NAME: string; KEY_DATA_OFFSET: number; SUPPORTS_RGB_KEY_FILL: boolean; CONTROLS: Readonly<StreamDeckControlDefinition[]>; /** * TODO - rework this * @deprecated */ KEY_SPACING_HORIZONTAL: number; /** * TODO - rework this * @deprecated */ KEY_SPACING_VERTICAL: number; FULLSCREEN_PANELS: number; HAS_NFC_READER: boolean; /** Whether this device supports child devices */ SUPPORTS_CHILD_DEVICES: boolean; }>; export interface StreamDeckServicesDefinition { deviceProperties: StreamDeckProperties; events: CallbackHook<StreamDeckEvents>; properties: PropertiesService; buttonsLcd: ButtonsLcdDisplayService; inputService: StreamDeckInputService; lcdSegmentDisplay: LcdSegmentDisplayService | null; encoderLed: EncoderLedService | null; } export declare class StreamDeckBase extends EventEmitter<StreamDeckEvents> implements StreamDeck { #private; get CONTROLS(): Readonly<StreamDeckControlDefinition[]>; get MODEL(): DeviceModelId; get PRODUCT_NAME(): string; get HAS_NFC_READER(): boolean; protected readonly device: HIDDevice; protected readonly deviceProperties: Readonly<StreamDeckProperties>; constructor(device: HIDDevice, _options: Readonly<Required<OpenStreamDeckOptions>>, services: StreamDeckServicesDefinition); protected checkValidKeyIndex(keyIndex: KeyIndex, feedbackType: StreamDeckButtonControlDefinition['feedbackType'] | null): void; calculateFillPanelDimensions(options?: FillPanelDimensionsOptions): Dimension | null; close(): Promise<void>; getHidDeviceInfo(): Promise<HIDDeviceInfo>; setBrightness(percentage: number): Promise<void>; resetToLogo(): Promise<void>; getFirmwareVersion(): Promise<string>; getAllFirmwareVersions(): Promise<Record<string, string>>; getSerialNumber(): Promise<string>; sendPreparedBuffer(buffer: PreparedBuffer): Promise<void>; fillKeyColor(keyIndex: KeyIndex, r: number, g: number, b: number): Promise<void>; fillKeyBuffer(keyIndex: KeyIndex, imageBuffer: Uint8Array, options?: FillImageOptions): Promise<void>; prepareFillKeyBuffer(keyIndex: KeyIndex, imageBuffer: Uint8Array | Uint8ClampedArray, options?: FillImageOptions, jsonSafe?: boolean): Promise<PreparedBuffer>; fillPanelBuffer(imageBuffer: Uint8Array, options?: FillPanelOptions): Promise<void>; prepareFillPanelBuffer(imageBuffer: Uint8Array | Uint8ClampedArray, options?: FillPanelOptions, jsonSafe?: boolean): Promise<PreparedBuffer>; clearKey(keyIndex: KeyIndex): Promise<void>; clearPanel(): Promise<void>; fillLcd(...args: Parameters<StreamDeck['fillLcd']>): ReturnType<StreamDeck['fillLcd']>; fillLcdRegion(...args: Parameters<StreamDeck['fillLcdRegion']>): ReturnType<StreamDeck['fillLcdRegion']>; prepareFillLcdRegion(...args: Parameters<StreamDeck['prepareFillLcdRegion']>): ReturnType<StreamDeck['prepareFillLcdRegion']>; clearLcdSegment(...args: Parameters<StreamDeck['clearLcdSegment']>): ReturnType<StreamDeck['clearLcdSegment']>; setEncoderColor(...args: Parameters<StreamDeck['setEncoderColor']>): ReturnType<StreamDeck['setEncoderColor']>; setEncoderRingSingleColor(...args: Parameters<StreamDeck['setEncoderRingSingleColor']>): ReturnType<StreamDeck['setEncoderRingSingleColor']>; setEncoderRingColors(...args: Parameters<StreamDeck['setEncoderRingColors']>): ReturnType<StreamDeck['setEncoderRingColors']>; getChildDeviceInfo(): Promise<StreamDeckTcpChildDeviceInfo | null>; } //# sourceMappingURL=base.d.ts.map