import { ChannelCredentials, Metadata } from 'grpc'; import { ClientIdentification } from './proto/control_pb'; import { AnyFunction, Unsubscriber } from './types'; export interface QueryOptions { timeout?: number | null; priority?: number | null; nrOfResults?: number | null; query: string; payload?: { type?: string; revision?: string; data?: any; }; responseType: { type?: string; revision?: string; data?: any; }; } export interface QueryResult { messageIdentifier: string; requestIdentifier: string; payload: { type: string; revision: string; data: T; }; } interface Options { endpoint: string; meta: Metadata; credentials: ChannelCredentials; clientIdentification: ClientIdentification; } export declare class QueryBus { private queryClient; private meta; private clientIdentification; private queryStream; private subscriptions; private permits; constructor({ meta, credentials, endpoint, clientIdentification }: Options); getPermits(): number; setPermits(permits: number): void; private openStream; subscribe(queryName: string, operation: AnyFunction, responseType: string): Unsubscriber; unsubscribe(queryName: string): void; query({ query, timeout, priority, nrOfResults, responseType, payload, }: QueryOptions): Promise>; queryJava({ query, queryType, timeout, payload: payloadData, responseType, responseIsList, nrOfResults, priority, }: Omit & { queryType?: string; payload: any; responseType: string; responseIsList?: boolean; }): Promise>; close(): void; } export {};