34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
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;
|
|
}
|