/// 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;