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 { protected ipcChannel: IPCChannel; protected ipcRemoteId: string; protected constructor(); protected handleIPCMessage(remoteId: string, broadcast: boolean, message: ChannelMessage): void; protected sendIPCMessage(type: T, payload: PopoutIPCMessage[T]): void; protected handleTypedIPCMessage(type: T, payload: PopoutIPCMessage[T]): void; protected destroyIPC(): void; }