export interface IpcBusReplySuccessMessage { reply: any; correlationId: string; } export interface IpcBusReplyErrorMessage { error: any; correlationId: string; } export type IpcBusReplyMessage = IpcBusReplyErrorMessage | IpcBusReplySuccessMessage; export type IpcBusReplyHandler = (data: any) => Promise; export interface IpcBusRequesterInterface { connect(): Promise; disconnect(): Promise; request(channel: string, message: object): Promise; } export interface IpcBusRequestMessage { meta: { replyTo: string; correlationId: string; }; content: any; } export interface IpcBusServiceOptions { disableStringify?: boolean; isFromApiProxy?: boolean; } export type IpcBusCallback = (channel: string, data: any) => void; export interface IpcBusSubscription { unsubscribe(): void; } export interface IpcBusService extends BusCore { connect(): Promise; } export interface WorkspaceSdkBus extends BusCore { connect?(): Promise; } interface BusCore { subscribe(channel: string, callback: IpcBusCallback): IpcBusSubscription; unsubscribe(channel: string, callback: IpcBusCallback): void; publish(channel: string, data: any): void; } export declare enum IpcBusSocketMessageType { Init = "init", Data = "data", Close = "close", Ping = "ping", Pong = "pong" } export interface SocketData { discoveryEndpoint: string; streamProtocol: string; [key: string]: any; } export interface IpcBusSocketCreateMessage { clientChannel: string; serverChannel: string; data: SocketData; } export interface IpcBusSocketInitMessage { type: IpcBusSocketMessageType.Init; } export interface IpcBusSocketDataMessage { type: IpcBusSocketMessageType.Data; data: string; } export interface IpcBusSocketCloseMessage { type: IpcBusSocketMessageType.Close; reason: string; } export interface IpcBusSocketPingMessage { type: IpcBusSocketMessageType.Ping; } export interface IpcBusSocketPongMessage { type: IpcBusSocketMessageType.Pong; } export type IpcBusSocketMessage = IpcBusSocketInitMessage | IpcBusSocketDataMessage | IpcBusSocketCloseMessage | IpcBusSocketPingMessage | IpcBusSocketPongMessage; export {};