2021-02-20 18:55:36 +01:00

27 lines
1.4 KiB
TypeScript

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<ModalOptions>;
getEvents(): Registry<ModalEvents>;
getState(): ModalState;
protected abstract spawnWindow(): Promise<boolean>;
protected abstract focusWindow(): void;
protected abstract destroyWindow(): void;
show(): Promise<void>;
private doDestroyWindow;
hide(): Promise<void>;
destroy(): void;
protected handleWindowClosed(): void;
protected handleIPCMessage(remoteId: string, broadcast: boolean, message: ChannelMessage): void;
protected handleTypedIPCMessage<T extends Popout2ControllerMessages>(remoteId: string, isBroadcast: boolean, type: T, payload: PopoutIPCMessage[T]): void;
}