TeaSpeak-Client/imports/shared-app/ui/react-elements/external-modal/IPCMessage.d.ts

36 lines
1.4 KiB
TypeScript

import { IPCChannel } from "../../../ipc/BrowserIPC";
export declare const kPopoutIPCChannelId = "popout-channel";
export interface PopoutIPCMessage {
"hello-popout": {
version: string;
authenticationCode: string;
};
"hello-controller": {
accepted: boolean;
message?: string;
constructorArguments?: any[];
};
"invoke-modal-action": {
action: "close" | "minimize";
};
}
export declare type Controller2PopoutMessages = "hello-controller";
export declare type Popout2ControllerMessages = "hello-popout" | "invoke-modal-action";
export interface SendIPCMessage {
"controller": Controller2PopoutMessages;
"popout": Popout2ControllerMessages;
}
export interface ReceivedIPCMessage {
"controller": Popout2ControllerMessages;
"popout": Controller2PopoutMessages;
}
export declare abstract class EventControllerBase<Type extends "controller" | "popout"> {
protected readonly ipcAuthenticationCode: string;
protected ipcRemotePeerId: string;
protected ipcChannel: IPCChannel;
protected constructor(ipcAuthenticationCode: string);
protected sendIPCMessage<T extends SendIPCMessage[Type]>(type: T, payload: PopoutIPCMessage[T]): void;
protected handleTypedIPCMessage<T extends ReceivedIPCMessage[Type]>(remoteId: string, isBroadcast: boolean, type: T, payload: PopoutIPCMessage[T]): void;
protected destroyIPC(): void;
}