///
import { Message } from "./message";
export type MessageSender = Pick;
export type FnRequestInteractionOptions = {
unstableOnClose?: () => void;
ignoreURIReplacement?: boolean;
};
export type FnRequestInteraction = >(url: string, msg: M, options?: FnRequestInteractionOptions) => Promise ? R : never>;
export interface Env {
readonly isInternalMsg: boolean;
readonly requestInteraction: FnRequestInteraction;
readonly sender: MessageSender;
}
export type EnvProducer = (sender: MessageSender, routerMeta: Record) => Env;
export interface MessageRequester {
sendMessage>(port: string, msg: M): Promise ? R : never>;
}
export type Guard = (env: Omit, msg: Message, sender: MessageSender) => Promise;