import type { BrowserTypes, GetAgentLogLevels } from '@finos/fdc3'; import { LogLevel } from '@finos/fdc3'; import { FullyQualifiedAppIdentifier, HandshakeMessage, IProxyIncomingMessageEnvelope, IProxyMessagingProvider, Message, RequestMessage, ResponseMessage } from '../contracts.js'; /** * Base class for anything that needs to send and receive request and response messages */ export declare abstract class MessagingBase { protected readonly appIdentifier: FullyQualifiedAppIdentifier; protected readonly messagingProvider: IProxyMessagingProvider; protected readonly logLevels?: GetAgentLogLevels | undefined; protected readonly incomingMessageCallbacks: Map void>; protected readonly log: (message: string, level?: LogLevel, ...optionalParams: any[]) => void; constructor(appIdentifier: FullyQualifiedAppIdentifier, messagingProvider: IProxyMessagingProvider, logLevels?: GetAgentLogLevels | undefined); protected getResponse(requestMessage: RequestMessage, responseTypeCheck: (value: Message) => value is T): Promise; protected publishRequestMessage(message: RequestMessage): Promise; protected awaitMessage(typeCheck: (value: any) => value is T): Promise; protected awaitRequestUuid(responseTypeCheck: (value: any) => value is T, requestUuid: string): Promise; protected addMessageCallback(callbackUuid: string, messageCallback: (value: Message) => void): Promise; protected removeMessageCallback(callbackUuid: string): Promise; protected onMessage(envelope: IProxyIncomingMessageEnvelope): void; private subscribeToMessages; }