rxpoweredup
Version:
A Typescript RxJS-based library for controlling LEGO Powered UP hubs & peripherals.
20 lines (19 loc) • 1.34 kB
TypeScript
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;
}