import type { ComponentMeta, ComponentMetaManager, Designer, Detecting, Document, Dragon, DropLocation, History, Node, NodeChildren, OffsetObserver, Project, Prop, Props, Selection, SetterManager, Simulator, Viewport } from '..';
export interface PluginExtend {
    extendClass: PluginExtendClass;
    extend: <T extends keyof PluginExtendClass>(extendClass: T, properties: Record<PropertyKey, () => any> | (PropertyDescriptorMap & ThisType<InstanceType<PluginExtendClass[T]>>)) => void;
}
export interface PluginExtendClass {
    Simulator: typeof Simulator;
    Viewport: typeof Viewport;
    Designer: typeof Designer;
    Dragon: typeof Dragon;
    Detecting: typeof Detecting;
    Selection: typeof Selection;
    DropLocation: typeof DropLocation;
    OffsetObserver: typeof OffsetObserver;
    Project: typeof Project;
    Document: typeof Document;
    History: typeof History;
    Node: typeof Node;
    NodeChildren: typeof NodeChildren;
    Props: typeof Props;
    Prop: typeof Prop;
    ComponentMetaManager: typeof ComponentMetaManager;
    SetterManager: typeof SetterManager;
    ComponentMeta: typeof ComponentMeta;
}
/**
 * 扩展类
 * @param extendMap 扩展类映射
 * @param extendClass 扩展类
 * @param properties 扩展属性
 */
export declare const extend: <T extends keyof PluginExtendClass>(extendMap: Record<T, PluginExtendClass[T]>, extendClass: T, properties: Record<PropertyKey, () => any> | (PropertyDescriptorMap & ThisType<InstanceType<PluginExtendClass[T]>>)) => void;
