import { StreamProcessor } from "../../../basic/StreamProcessor";
import { InteractiveEvent, IRectNode } from "../../../../../common";
import { AbsProps, BaseProps, GraphicNode } from "../../../../../graphics";
import { AppEventContext } from "../../../../../app";
import { IPoint, NodeType } from "../../../../../idl";
import { AlignWorker } from "../../../align/AlignWorker";
export declare abstract class AbsCreateDragProcessor extends StreamProcessor {
    startPos: IPoint;
    target: GraphicNode | null;
    viewBounds: IRectNode;
    alignWorker: AlignWorker;
    protected abstract makeupDefaultProps(ctx: AppEventContext, localPos: IPoint): AbsProps[];
    protected abstract computeMiniSize(): {
        width: number;
        height: number;
    };
    protected abstract computeDefaultSize(ctx: AppEventContext): {
        width: number;
        height: number;
    };
    protected nodeType(): NodeType;
    protected autoFocus(): boolean;
    onStart(event: InteractiveEvent, ctx: AppEventContext): void;
    onMove(event: InteractiveEvent, ctx: AppEventContext): void;
    onUp(event: InteractiveEvent, ctx: AppEventContext): void;
    protected dealWithUpUpdateProps(defaultCreate: boolean, updateProps: Partial<AbsProps>[]): void;
    protected computeRectBounds(globalPoint: IPoint, baseProps: BaseProps, defaultWidth?: number, defaultHeight?: number): void;
    private drawAlignLine;
}
//# sourceMappingURL=AbsCreateDragProcessor.d.ts.map