34 lines
1.3 KiB
TypeScript
Raw Normal View History

2021-02-07 20:01:37 +01:00
import { ChannelMessage, IPCChannel } from "../../../ipc/BrowserIPC";
export interface PopoutIPCMessage {
"hello-popout": {
version: 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 ipcChannel: IPCChannel;
protected ipcRemoteId: string;
protected constructor();
protected handleIPCMessage(remoteId: string, broadcast: boolean, message: ChannelMessage): void;
protected sendIPCMessage<T extends SendIPCMessage[Type]>(type: T, payload: PopoutIPCMessage[T]): void;
protected handleTypedIPCMessage<T extends ReceivedIPCMessage[Type]>(type: T, payload: PopoutIPCMessage[T]): void;
protected destroyIPC(): void;
}