import { Theme } from '@mui/material';
import { SetStateAction, Dispatch, FC, ReactNode } from 'react';
import { EditorStateType, Element } from '../types';
import { EditorRendererControllerType } from '../editorRendererController';

type RendererUiActionsType = {
    selectElement?: (elementId: string, boundingRect: unknown) => void;
};
export type HtmlRendererProps<UiActionsType extends RendererUiActionsType> = {
    isProduction?: boolean;
    theme: Theme;
    OverlayComponent?: FC<{
        element: Element;
    }>;
    editorState: EditorStateType;
    setEditorState?: Dispatch<SetStateAction<EditorStateType>>;
    currentViewportElements: Element[];
    uiActions?: UiActionsType;
    ELEMENT_MODELS: EditorRendererControllerType['ELEMENT_MODELS'];
    appController: EditorRendererControllerType['appController'];
    pageName: string;
    navigate: (to: string) => void;
    isInHelpMode?: boolean;
    isInHelpModeSelected?: boolean;
    id?: string;
    injectElementAtEnd?: ReactNode;
    injectElementInContainerStart?: ReactNode;
    importIconByName: (name: string) => Promise<string>;
    hoveredElementSide?: string | null;
    dragging?: unknown;
    disableElementEvents?: boolean;
    allElements: Element[];
    injections?: {
        elements: Record<string, any>;
        elementReplacementComponent: Record<string, ReactNode>;
    };
};
export declare const HtmlRendererComponent: <UiActionsType extends RendererUiActionsType>(props: HtmlRendererProps<UiActionsType>) => import("react/jsx-runtime").JSX.Element;
export declare const HtmlRenderer: import('react').MemoExoticComponent<(<UiActionsType extends RendererUiActionsType>(props: HtmlRendererProps<UiActionsType>) => import("react/jsx-runtime").JSX.Element)>;
export {};
