import { MyopMessageKey } from "./MyopMessages"; import { BaseMyopMessage, MyopBindMessage, MyopBindReplayMessage } from "../messages"; import { CleanupHandler } from "./index.ts"; export type IMessageExecutorCleanup = CleanupHandler | Promise | Promise | void; export declare const runExecutorCleanup: (task: IMessageExecutorCleanup) => Promise; type IMessageExecutor = (message: T) => IMessageExecutorCleanup; interface IMessageHandler { messageType: MyopMessageKey; executor: IMessageExecutor; messageToHost: (message: MyopBindReplayMessage, replayTo?: MyopBindMessage) => void; } export declare abstract class BaseMessageHandler implements IMessageHandler { messageToHost: (message: MyopBindReplayMessage, replayTo?: MyopBindMessage) => void; constructor(messageToHost: (message: MyopBindReplayMessage, replayTo?: MyopBindMessage) => void); abstract messageType: MyopMessageKey; abstract executor: IMessageExecutor; } export declare abstract class BaseContextMessageHandler extends BaseMessageHandler { messageToHost: (message: MyopBindReplayMessage, replayTo?: MyopBindMessage) => void; context?: E; constructor(messageToHost: (message: MyopBindReplayMessage, replayTo?: MyopBindMessage) => void, context?: E); } export {};