import { ChannelCredentials, Metadata } from 'grpc'; import { ClientIdentification } from './proto/control_pb'; import { AnyFunction, Unsubscriber } from './types'; interface Options { endpoint: string; meta: Metadata; credentials: ChannelCredentials; clientIdentification: ClientIdentification; } export interface DispatchOptions { name: string; payload?: { type: string; revision?: string; data: T; }; } export interface DispatchResponse { messageIdentifier: string; requestIdentifier: string; payload: { type: string; revision: string; data: T; }; } export declare class CommandBus { private commandClient; private meta; private clientIdentification; private commandStream; private subscriptions; private permits; constructor({ meta, credentials, endpoint, clientIdentification }: Options); getPermits(): number; setPermits(permits: number): void; private openStream; subscribe(commandName: string, operation: AnyFunction, responseType: string): Unsubscriber; unsubscribe(commandName: string): void; dispatch({ name, payload }: DispatchOptions): Promise>; close(): void; } export {};