import { t as Json } from "./types-CBSiNsDJ.mjs";
import { t as RemoteModuleContext } from "./protocol-ClWDYwW2.mjs";
import { ReactNode } from "react";

//#region src/bridge/origin.d.ts
declare function personaDashboardHostOrigins(origin: string): boolean;
//#endregion
//#region src/bridge/iframe/createModuleBridge.d.ts
type ModuleBridgeInitPayload = {
  data: Json;
  context: RemoteModuleContext | null;
};
type CreateModuleBridgeOptions = {
  allowedHostOrigins?: (string | RegExp)[] | ((origin: string) => boolean);
  resolveTimeoutMs?: number;
  signalsLoaded?: boolean;
};
type ModuleBridge = {
  ready: () => Promise<ModuleBridgeInitPayload>;
  getData: () => Json;
  getContext: () => RemoteModuleContext | null;
  subscribe: (listener: () => void) => () => void;
  reportRenderError: (message: string) => void;
  resolveDataPath: (dataPath: string, variableMap?: Record<string, string | number>) => Promise<Json>;
  observeHeight: (element: Element) => () => void;
  signalLoaded: () => void;
  destroy: () => void;
};
//#endregion
//#region src/bridge/iframe/LayoutModuleBridge.d.ts
type LayoutModuleBridgeRenderProps = {
  data: ReturnType<ModuleBridge['getData']>;
  context: RemoteModuleContext | null;
  resolveDataPath: ModuleBridge['resolveDataPath'];
};
type LayoutModuleBridgeProps = {
  allowedHostOrigins?: CreateModuleBridgeOptions['allowedHostOrigins'];
  resolveTimeoutMs?: number;
  observeHeight?: boolean;
  fallback?: ReactNode;
  children: (props: LayoutModuleBridgeRenderProps) => ReactNode;
};
declare function LayoutModuleBridge({
  allowedHostOrigins,
  resolveTimeoutMs,
  observeHeight,
  fallback,
  children
}: LayoutModuleBridgeProps): ReactNode;
//#endregion
export { type Json, LayoutModuleBridge, type LayoutModuleBridgeProps, type LayoutModuleBridgeRenderProps, type RemoteModuleContext, personaDashboardHostOrigins };