@constructorfleet/ultimate-govee
Version:
Library for interacting with Govee devices written in Typescript.
29 lines • 1.67 kB
TypeScript
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