/** * This is an iframe widget. It is used for rendering an iframe that * then communicates its state via window.postMessage * This is useful for embedding arbitrary visualizations/simulations with * completed conditions, such as the mazes and games in Algorithms. * It's particularly well suited for embedding our ProcessingJS programs, * but could also be used for embedding viz's hosted elsewhere. */ import * as React from "react"; import { PerseusI18nContext } from "../../components/i18n-context"; import type { WidgetProps, Widget } from "../../types"; import type { UnsupportedWidgetPromptJSON } from "../../widget-ai-utils/unsupported-widget"; import type { PerseusIFrameUserInput, PerseusIFrameWidgetOptions } from "@khanacademy/perseus-core"; type Props = WidgetProps; type DefaultProps = { allowFullScreen: Props["allowFullScreen"]; allowTopNavigation: Props["allowTopNavigation"]; userInput: Props["userInput"]; }; declare class Iframe extends React.Component implements Widget { static contextType: React.Context; context: React.ContextType; static defaultProps: DefaultProps; componentDidMount(): void; componentWillUnmount(): void; getPromptJSON(): UnsupportedWidgetPromptJSON; /** * @deprecated and likely very broken API * [LEMS-3185] do not trust serializedState */ getSerializedState(): any; handleMessageEvent: (arg1: any) => void; render(): React.ReactNode; } /** * @deprecated and likely a very broken API * [LEMS-3185] do not trust serializedState */ declare function getUserInputFromSerializedState(serializedState: any): PerseusIFrameUserInput; declare function getStartUserInput(): PerseusIFrameUserInput; declare const _default: { name: string; displayName: string; widget: typeof Iframe; hidden: true; getStartUserInput: typeof getStartUserInput; getUserInputFromSerializedState: typeof getUserInputFromSerializedState; }; export default _default;