import { ChannelMessage } from "../../../ipc/BrowserIPC"; import { Registry } from "tc-events"; import { EventControllerBase, Popout2ControllerMessages, PopoutIPCMessage } from "../../../ui/react-elements/external-modal/IPCMessage"; import { ModalController, ModalEvents, ModalOptions, ModalState } from "../../../ui/react-elements/ModalDefinitions"; export declare abstract class AbstractExternalModalController extends EventControllerBase<"controller"> implements ModalController { readonly modalType: string; readonly constructorArguments: any[]; private readonly modalEvents; private modalState; private readonly documentUnloadListener; private callbackWindowInitialized; protected constructor(modalType: string, constructorArguments: any[]); getOptions(): Readonly; getEvents(): Registry; getState(): ModalState; protected abstract spawnWindow(): Promise; protected abstract focusWindow(): void; protected abstract destroyWindow(): void; show(): Promise; private doDestroyWindow; hide(): Promise; destroy(): void; protected handleWindowClosed(): void; protected handleIPCMessage(remoteId: string, broadcast: boolean, message: ChannelMessage): void; protected handleTypedIPCMessage(remoteId: string, isBroadcast: boolean, type: T, payload: PopoutIPCMessage[T]): void; }