import React from 'react';
import { Manager } from '../base/Manager';
import { FieldItem, ModelCollection, ModelItem } from '../type';
import { PanelWrapperProps } from './PanelWrapper';
import './SerialNumberRuleInput';
import './OptionControl';
export interface ModelDesignEditorProps {
    manager: Manager;
    className?: string;
    aside?: JSX.Element;
    asideVisible?: boolean;
    asideSpinned?: boolean;
    asideCollapsed?: boolean;
    onAsideCollapsedToggole?: () => void;
    onAsideSpinnedToggole?: () => void;
    diagramToolbar?: JSX.Element | ((props: any) => JSX.Element);
    PanelWrapperComponent?: React.ComponentType<PanelWrapperProps>;
    onModelCreate?: () => void;
    children?: JSX.Element | ((props: {
        isFullScreen?: boolean;
    }) => JSX.Element);
    /**
     * 初始值
     */
    value?: ModelCollection;
    /**
     * 是否触发了保存
     */
    isDirty?: boolean;
    /**
     * 修改回调，数据可能没有通过验证。
     */
    onChange?: (value: ModelCollection) => void;
    /**
     * 是否为禁用状态
     */
    disabled?: boolean;
    /**
     * 是否只读，默认为 false
     */
    readonly?: boolean;
    /**
     * 是否显示缩略图，默认显示
     */
    showThumbnail?: boolean;
    /**
     * 是否显示工具栏，默认显示
     */
    showToolbar?: boolean;
}
export declare class ModelDesignEditor extends React.Component<ModelDesignEditorProps> {
    toDispose: Array<() => void>;
    dom: React.RefObject<HTMLDivElement>;
    rightPanelWrapper: React.RefObject<any>;
    alertComponent: any;
    contextMenu: any;
    isFullScreenEntered: boolean;
    componentDidMount(): void;
    componentDidUpdate(prevProps: ModelDesignEditorProps): void;
    componentWillUnmount(): void;
    alertComponentRef(ref: any): void;
    contextMenuRef(ref: any): void;
    validate(errors?: Array<string>, models?: ModelItem[]): Promise<boolean>;
    getManager(): Manager;
    handleFullscreenChange(): void;
    toggleFullscreen(): void;
    enterFullscreen(): void;
    leaveFullscreen(): void;
    /**
     * 获取弹出层容器元素
     *
     * @returns 返回弹出层容器元素
     */
    getPopOverContainer(): HTMLDivElement | null;
    getRightPanelWrapperDom(): HTMLDivElement | null;
    handleFieldRemove(modelData: ModelItem, modelIndex: number, field: FieldItem): Promise<void>;
    handleModelRemove(item: ModelItem): Promise<void>;
    handleModelContextMenu(item: ModelItem, index: number, e: React.UIEvent<any>): void;
    scrollItemIntoView(modelKey: string): void;
    render(): React.JSX.Element;
}
declare const _default: {
    new (props: Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
        manager?: Manager | undefined;
    }, context: Manager): {
        ref: any;
        readonly manager: Manager;
        readonly isSharedManager: boolean;
        componentWillUnmount(): void;
        getWrappedInstance(): any;
        childRef(ref: any): void;
        render(): React.JSX.Element;
        context: unknown;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callback?: (() => void) | undefined): void;
        readonly props: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>;
        state: Readonly<{}>;
        refs: {
            [key: string]: React.ReactInstance;
        };
        componentDidMount?(): void;
        shouldComponentUpdate?(nextProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, nextState: Readonly<{}>, nextContext: any): boolean;
        componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
        getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, prevState: Readonly<{}>): any;
        componentDidUpdate?(prevProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, prevState: Readonly<{}>, snapshot?: any): void;
        componentWillMount?(): void;
        UNSAFE_componentWillMount?(): void;
        componentWillReceiveProps?(nextProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, nextContext: any): void;
        UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, nextContext: any): void;
        componentWillUpdate?(nextProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, nextState: Readonly<{}>, nextContext: any): void;
        UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<ModelDesignEditorProps, "manager"> & import("../base/Manager").ManagerOptions & {
            manager?: Manager | undefined;
        }>, nextState: Readonly<{}>, nextContext: any): void;
    };
    displayName: string;
    contextType: React.Context<Manager | null>;
    ComposedComponent: typeof ModelDesignEditor;
};
export default _default;
