UNPKG

rxpoweredup

Version:

A Typescript RxJS-based library for controlling LEGO Powered UP hubs & peripherals.

20 lines (19 loc) 1.34 kB
import { Observable } from 'rxjs'; import type { IDisposable, ILogger, LastOfTuple, RawMessage, RawPortOutputCommandMessage } from '../../types'; import { OutboundMessageTypes } from '../../constants'; import { IOutboundMessenger, PortCommandExecutionStatus, WithResponseSequenceItem } from '../../hub'; import { IQueueTask, TaskQueue, TaskQueueFactory } from './queue'; export declare class OutboundMessenger implements IOutboundMessenger, IDisposable { private readonly taskQueueFactory; private readonly logger; private isDisposed; private readonly genericTaskQueue; private portOutputCommandTaskQueues; constructor(taskQueueFactory: TaskQueueFactory, logger: ILogger); sendWithoutResponse(message: RawMessage<OutboundMessageTypes>): Observable<void>; sendWithResponse<TSequenceItems extends [...Array<WithResponseSequenceItem<unknown>>, WithResponseSequenceItem<unknown>], TResult extends LastOfTuple<TSequenceItems> extends WithResponseSequenceItem<infer R> ? R : never>(...sequenceItems: TSequenceItems): Observable<TResult>; sendPortOutputCommand(message: RawPortOutputCommandMessage): Observable<PortCommandExecutionStatus>; createExecutionStreamForTask<TTaskResult>(task: IQueueTask<TTaskResult>, queue: TaskQueue): Observable<TTaskResult>; dispose(): void; private getQueueForPort; }