UNPKG

@constructorfleet/ultimate-govee

Version:

Library for interacting with Govee devices written in Typescript.

29 lines 1.67 kB
import { BehaviorSubject } from 'rxjs'; import { BleChannelService } from './ble/ble-channel.service'; import { OPTIONS_TYPE as BleModuleOptions, ASYNC_OPTIONS_TYPE as AsyncBleModuleOptions } from './ble/ble-channel.const'; import { IoTChannelService } from './iot/iot-channel.service'; import { OPTIONS_TYPE as IoTModuleOptions, ASYNC_OPTIONS_TYPE as AsyncIoTModuleOptions } from './iot/iot-channel.types'; import { RestChannelService } from './rest/rest-channel.service'; import { OPTIONS_TYPE as RestModuleOptions, ASYNC_OPTIONS_TYPE as AsyncRestModuleOptions } from './rest/rest-channel.types'; import { OPTIONS_TYPE as OpenApiModuleOptions, ASYNC_OPTIONS_TYPE as AsyncOpenApiModuleOptions } from './openapi/openapi-channel.types'; import { OpenApiChannelService } from './openapi/openapi-channel.service'; export type TogglableChannels = Extract<BleChannelService | IoTChannelService | RestChannelService | OpenApiChannelService, { togglable: true; }>; export type ChannelToggle = { [S in TogglableChannels as S['name']]: Pick<S, 'setConfig' | 'setEnabled' | 'closeSubscriptions'>; }; export type ChannelState<TConfig extends object> = { config: BehaviorSubject<TConfig | undefined>; enabled: BehaviorSubject<boolean | undefined>; }; export type Togglable = { togglable: boolean; }; export type ChannelModuleOptions = { ble?: typeof BleModuleOptions | typeof AsyncBleModuleOptions; iot?: typeof IoTModuleOptions | typeof AsyncIoTModuleOptions; rest?: typeof RestModuleOptions | typeof AsyncRestModuleOptions; openAPI?: typeof OpenApiModuleOptions | typeof AsyncOpenApiModuleOptions; }; //# sourceMappingURL=channel.types.d.ts.map