import { EventEmitter, Injector } from '@angular/core';
import { IComponentDef } from '../../shared/interfaces';
import { DndDropEvent, DropEffect } from '../../ngx-drag-drop';
import * as i0 from "@angular/core";
export declare abstract class WidgetFormRenderBase {
    /** 父级组件 */
    parentComponent: IComponentDef;
    /** 要渲染的组件 */
    component: IComponentDef;
    /** 要渲染的组件发生变更 */
    widgetChange: EventEmitter<IComponentDef>;
    /** 当前渲染组件所属index */
    widgetIndex: number;
    /** 当前选中的组件 */
    selectComponent: IComponentDef;
    /** 当前选中的组件发生变更 */
    selectComponentChange: EventEmitter<IComponentDef>;
    /** 复制部件 */
    cloneComponent: EventEmitter<IComponentDef>;
    /** 删除部件 */
    deleteComponent: EventEmitter<IComponentDef>;
    /** 清空子组件 */
    clearComponent: EventEmitter<IComponentDef>;
    /** 禁用拖拽 */
    disableDragDrop: boolean;
    /** 当前是否存在子组件 */
    get existChildren(): boolean;
    constructor(injector: Injector);
    /** 调用克隆组件 */
    callCloneComponent(widget: IComponentDef): void;
    /** 调用删除组件 */
    callDeleteComponent(widget: IComponentDef): void;
    /** 调用清空子组件 */
    callClearComponent(widget: IComponentDef): void;
    /** 调用选中组件 */
    callSelectWidgetChange(widget: IComponentDef, e?: MouseEvent): boolean;
    /** 处理选中组件 */
    handleSelectComponent(widgetOrIndex: number | IComponentDef, e?: MouseEvent): void;
    /** 处理复制组件 */
    handleComponentClone(index: number): void;
    /** 处理删除组件 */
    handleComponentDelete(index: number): void;
    /** 清空组件 */
    handleComponentClear(index: number): void;
    getLabelWidth(item: IComponentDef): string;
    /** 拖拽结束 */
    onDragged(effect: DropEffect, parent: IComponentDef, item: IComponentDef): void;
    /** 放下 */
    onDngDrop(event: DndDropEvent, target?: IComponentDef): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WidgetFormRenderBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<WidgetFormRenderBase, never, never, { "parentComponent": "parentComponent"; "component": "component"; "widgetIndex": "widgetIndex"; "selectComponent": "selectComponent"; "disableDragDrop": "disableDragDrop"; }, { "widgetChange": "widgetChange"; "selectComponentChange": "selectComponentChange"; "cloneComponent": "cloneComponent"; "deleteComponent": "deleteComponent"; "clearComponent": "clearComponent"; }, never>;
}
