import { ElementType } from 'react';
import { DesignerSpec } from 'vitis-lowcode-types';
import ComponentSpec from './componentSpec';
import { Dragon } from './dragon';
import Host from './host';
import Detection from './detection';
import type Project from './index';
import Viewport from './viewport';
import { LocationEvent } from '../types';
import SettingTopEntry from '../setting/SettingTopEntry';
export default class Designer implements DesignerSpec {
    componentSpecMap: Map<string, ComponentSpec>;
    componentImplMap: Map<string, ElementType>;
    dragon: Dragon;
    host: Host;
    project: Project;
    viewport: Viewport;
    detection: Detection;
    settingTopEntry?: SettingTopEntry;
    constructor(project: Project);
    buildComponentSpecMap: (packageNames: string[]) => void;
    addComponentsImpl: (componentMap: Map<string, ElementType>) => void;
    private addComponentImpl;
    mountViewport: (element: HTMLElement | null) => void;
    getDropContainer: (locateEvent: LocationEvent) => import("../node").default<import("vitis-lowcode-types").NodeSchema>;
    getNodeRect: (nodeId: string) => DOMRect;
    getInsertPointRect: () => DOMRect;
    selectNode: (nodeId?: string) => void;
    rerender: () => Promise<void>;
}
