import type { Emitter } from 'mitt';
import React from 'react';
import type { AssetPackage, CMaterialType, CNode, CPageDataType, CRootNode } from '@worldprinter/lowcode-model';
import { CPage } from '@worldprinter/lowcode-model';
import { Workbench } from './component/Workbench';
import type { CPlugin } from './core/pluginManager';
import { PluginManager } from './core/pluginManager';
export type EnginContext = {
    pluginManager: PluginManager;
    engine: Engine;
};
export type EngineProps = {
    plugins: CPlugin[];
    schema: CPageDataType;
    material?: CMaterialType[];
    assetPackagesList?: AssetPackage[];
    beforePluginRun?: (options: {
        pluginManager: PluginManager;
    }) => void;
    onReady?: (ctx: EnginContext) => void;
    /** 渲染器 umd 格式 js 地址，默认 ./render.umd.js */
    renderJSUrl?: string;
};
export declare class Engine extends React.Component<EngineProps> {
    static version: string;
    currentSelectNode: CNode | CRootNode | null;
    pluginManager: PluginManager;
    workbenchRef: React.RefObject<Workbench>;
    pageSchema: CPageDataType | undefined;
    pageModel: CPage;
    material: CMaterialType[] | undefined;
    emitter: Emitter<any>;
    constructor(props: EngineProps);
    updateCurrentSelectNode(node: CNode | CRootNode | null): void;
    componentDidMount(): Promise<void>;
    getActiveNode(): CNode | CRootNode | null;
    updatePage: (page: CPageDataType) => void;
    updateDesignerAssets: (assets: AssetPackage[]) => void;
    updateMaterial: (material: CMaterialType[]) => void;
    refresh: () => void;
    getWorkbench: () => Workbench | null;
    render(): import("@emotion/react/jsx-runtime").JSX.Element;
}
export * as plugins from './plugins';
export { DEFAULT_PLUGIN_LIST } from './plugins';
export * from '@worldprinter/lowcode-layout';
export * from './material/innerMaterial';
export * from './component/CustomSchemaForm/components/Setters/type';
