import { MessageMap, WebviewId } from '@gitlab-org/webview-plugin'; import { Connection } from 'vscode-languageserver'; import { Disposable } from '@gitlab-org/disposable'; import { MessageBus, ExtractRequestResult } from '@gitlab-org/message-bus'; import { RpcMethods, Handlers } from './types'; type ExtensionConnectionMessageBusProps = { webviewId: WebviewId; connection: Connection; rpcMethods: RpcMethods; handlers: Handlers; }; export declare class ExtensionConnectionMessageBus implements MessageBus { #private; constructor({ webviewId, connection, rpcMethods, handlers }: ExtensionConnectionMessageBusProps); onRequest(type: T, handler: (payload: TMessageMap['inbound']['requests'][T]['params']) => Promise>): Disposable; onNotification(type: T, handler: (payload: TMessageMap['inbound']['notifications'][T]) => void): Disposable; sendRequest(type: T, payload?: TMessageMap['outbound']['requests'][T]['params']): Promise>; sendNotification(type: T, payload?: TMessageMap['outbound']['notifications'][T]): Promise; } export {};