import * as React from "react"; import { OEmbedProps } from "../../../../components/OEmbed"; import { PbEditorElement, PbEditorPageElementPlugin, PbEditorPageElementAdvancedSettingsPlugin, OnCreateActions } from "../../../../../types"; interface EmbedPluginConfigRenderCallableParams { element: PbEditorElement; embedPluginConfig: EmbedPluginConfig; } export interface EmbedPluginConfigRenderCallable { (params: EmbedPluginConfigRenderCallableParams): React.ReactNode; } interface EmbedPluginConfigRenderElementPreviewCallableParams { element: PbEditorElement; width: number; height: number; } interface EmbedPluginConfigRenderElementPreviewCallable { (params: EmbedPluginConfigRenderElementPreviewCallableParams): React.ReactElement; } export interface EmbedPluginConfig { type: string; toolbar?: { title?: string; group?: string; preview?: () => React.ReactNode; }; render?: EmbedPluginConfigRenderCallable; oembed?: { global?: keyof Window; sdk?: string; onData?: (data: { [key: string]: any; }) => { [key: string]: any; }; renderEmbed?: (props: OEmbedProps) => React.ReactElement; init?: (params: { node: HTMLElement; }) => void; }; settings?: Array> | ((values: string[]) => string[]); create?: (element: Partial) => Partial; target?: Array; onCreate?: OnCreateActions; renderElementPreview?: EmbedPluginConfigRenderElementPreviewCallable; } export declare const createEmbedPlugin: (config: EmbedPluginConfig) => PbEditorPageElementPlugin; type EmbedPluginSidebarConfig = { type: string; render: PbEditorPageElementAdvancedSettingsPlugin["render"]; }; export declare const createEmbedSettingsPlugin: ({ type, render }: EmbedPluginSidebarConfig) => PbEditorPageElementAdvancedSettingsPlugin; export {};