UNPKG

@labelbox/message-bus

Version:

Distributed messaging in Typescript

22 lines (21 loc) 1.04 kB
import { Transport } from './Transport'; import { Handler } from './Handler'; export declare type LazyCallback = (param: string) => void; export declare type Unsubscribe = () => void; interface SlotConfig { noBuffer?: boolean; isCommand?: boolean; throwIfNoHandler?: boolean; } export interface Slot<RequestData = null, ResponseData = void> { (param: string, requestData: RequestData): Promise<ResponseData>; (requestData: RequestData): Promise<ResponseData>; on(param: string, handler: Handler<RequestData, ResponseData>): Unsubscribe; on(handler: Handler<RequestData, ResponseData>): Unsubscribe; lazy(connect: LazyCallback, disconnect: LazyCallback): Unsubscribe; config?: SlotConfig; slotName: string; } export declare function slot<RequestData = void, ResponseData = void>(config?: SlotConfig): Slot<RequestData, ResponseData>; export declare function connectSlot<T = void, T2 = void>(slotName: string, transports: Transport[], config?: SlotConfig): Slot<T, T2>; export {};