import React from 'react';
import type { LayoutDragEvent, LayoutPropsType } from '@worldprinter/lowcode-layout';
import { Layout } from '@worldprinter/lowcode-layout';
/**
 * TODO 注释 CSS 导入替换其他方式
 * import '@worldprinter/lowcode-layout/dist/style.css';
 */
import type { AssetPackage, CNode, CPage, CRootNode } from '@worldprinter/lowcode-model';
import type { CPluginCtx } from '../../core/pluginManager';
export type DesignerPropsType = {
    pluginCtx: CPluginCtx;
};
type DesignerStateType = {
    pageModel: CPage;
    hoverToolBar: React.ReactNode;
    selectToolBar: React.ReactNode;
    ghostView: React.ReactNode;
    portalView: React.ReactNode;
    assets: AssetPackage[];
};
export declare class Designer extends React.Component<DesignerPropsType, DesignerStateType> {
    layoutRef: React.RefObject<Layout>;
    constructor(props: DesignerPropsType);
    getPortalViewCtx: () => {
        setView: (view: React.ReactNode) => void;
        clearView: () => void;
    };
    componentDidMount(): void;
    updateAssets(assets: AssetPackage[]): void;
    reloadRender({ assets }: {
        assets?: AssetPackage[];
    }): void;
    init(): Promise<void>;
    onNodeDragging: (eventObj: LayoutDragEvent) => Promise<void>;
    onNodeDrop: (eventObj: LayoutDragEvent) => Promise<void>;
    onSelectNode: Required<LayoutPropsType>['onSelectNode'];
    onDragStart: (e: LayoutDragEvent) => Promise<false | undefined>;
    onHoverNode: (node: CNode | CRootNode | null, startNode: CNode | CRootNode, event: MouseEvent) => void;
    render(): import("@emotion/react/jsx-runtime").JSX.Element;
}
export {};
