import * as PIXI from "pixi.js-legacy";
import * as MedsurfDraw from "../../public-api";
import * as Models from '@ascii-dev-user/medsurf-lib/models';
import { BaseGenerator, BaseGeneratorModel } from "../../bases/generators/BaseGenerator";
export declare class CopyImageObjectMapping {
    old: Models.ImageObject;
    new: Models.ImageObject;
}
export declare class CloneItemGeneratorModel extends BaseGeneratorModel<MedsurfDraw.Image> {
    imageObjects: Models.ImageObject[];
    layerGroup: Models.LayerGroup;
    image: Models.Image;
    element: Models.PositionPoint | Models.Line | Models.FillCollection | Models.LegendCollection;
    imageObjectMappings: CopyImageObjectMapping[];
    relativePoint?: Models.Point | undefined;
}
export declare class CloneItemGenerator extends BaseGenerator<MedsurfDraw.Image, CloneItemGeneratorModel> {
    protected _cloneInteraction: MedsurfDraw.CloneInteraction;
    protected _cloneElement: MedsurfDraw.PositionPoint | MedsurfDraw.Line | MedsurfDraw.FillCollection | MedsurfDraw.LegendCollection;
    constructor(model: CloneItemGeneratorModel);
    start(event: PIXI.InteractionEvent): void;
    end(): void;
    destroy(options?: {
        children?: boolean;
        texture?: boolean;
        baseTexture?: boolean;
    }): void;
    endGenerator(): void;
    abortGenerator(): void;
    getCloneElement(model: Models.PositionPoint | Models.Line | Models.FillCollection | Models.LegendCollection, relativePoint?: Models.Point | undefined): {
        element: MedsurfDraw.PositionPoint | MedsurfDraw.Line | MedsurfDraw.FillCollection | MedsurfDraw.LegendCollection;
        relativePoint: Models.Point;
    };
    clonePositionPoint(model: Models.PositionPoint, relativePoint?: Models.Point | undefined): {
        element: MedsurfDraw.PositionPoint;
        relativePoint: Models.Point;
    };
    cloneLine(model: Models.Line, relativePoint?: Models.Point | undefined): {
        element: MedsurfDraw.Line;
        relativePoint: Models.Point;
    };
    cloneFillCollection(model: Models.FillCollection, relativePoint?: Models.Point | undefined): {
        element: MedsurfDraw.FillCollection;
        relativePoint: Models.Point;
    };
    cloneLegendCollection(model: Models.LegendCollection, relativePoint?: Models.Point | undefined): {
        element: MedsurfDraw.LegendCollection;
        relativePoint: Models.Point;
    };
    protected _positionPointOnReset(model: Models.PositionPoint, positionPoint: MedsurfDraw.PositionPoint, relativePoint: Models.Point): void;
    protected _positionPointOnZoom(model: Models.PositionPoint, positionPoint: MedsurfDraw.PositionPoint, relativePoint: Models.Point): void;
    protected _legendCollectionOnZoom(model: Models.LegendCollection, legendCollection: MedsurfDraw.LegendCollection, relativePoint: Models.Point): void;
    createPositionPointInstance(model: Models.PositionPoint, relativePoint: Models.Point): MedsurfDraw.PositionPoint;
    createLineInstance(model: Models.Line, start: Models.PositionPoint | Models.FillCollection, end: Models.PositionPoint | Models.FillCollection): MedsurfDraw.Line;
    createFillCollectionInstance(model: Models.FillCollection, lines: string[]): MedsurfDraw.FillCollection;
    createLegendInstance(model: Models.LegendCollection, relativePoint: Models.Point): MedsurfDraw.LegendCollection;
    createArrowPrimitiveInstance(model: Models.ArrowPrimitive, positionPoint: Models.PositionPoint): MedsurfDraw.ArrowPrimitive;
    createEllipsePrimitiveInstance(model: Models.EllipsePrimitive, positionPoint: Models.PositionPoint): MedsurfDraw.EllipsePrimitive;
    createRectanglePrimitiveInstance(model: Models.RectanglePrimitive, positionPoint: Models.PositionPoint): MedsurfDraw.RectanglePrimitive;
    createTextPrimitiveInstance(model: Models.TextPrimitive, positionPoint: Models.PositionPoint): MedsurfDraw.TextPrimitive;
    createPositionPointModel(model: Models.PositionPoint, relativePoint: Models.Point): Models.PositionPoint;
    createLineModel(model: Models.Line, start: Models.PositionPoint | Models.FillCollection, end: Models.PositionPoint | Models.FillCollection): Models.Line;
    createFillCollectionModel(model: Models.FillCollection, lines: string[]): Models.FillCollection;
    createLegendCollectionModel(model: Models.LegendCollection, relativePoint: Models.Point): Models.LegendCollection;
    createLegendColumnModel(model: Models.LegendColumn, legendCollection: Models.LegendCollection): Models.LegendColumn;
    createLegendRowModel(model: Models.LegendRow, legendColumn: Models.LegendColumn): Models.LegendRow;
    createArrowPrimitiveModel(model: Models.ArrowPrimitive, positionPoint: Models.PositionPoint): Models.ArrowPrimitive;
    createEllipsePrimitiveModel(model: Models.EllipsePrimitive, positionPoint: Models.PositionPoint): Models.EllipsePrimitive;
    createRectanglePrimitiveModel(model: Models.RectanglePrimitive, positionPoint: Models.PositionPoint): Models.RectanglePrimitive;
    createTextPrimitiveModel(model: Models.TextPrimitive, positionPoint: Models.PositionPoint): Models.TextPrimitive;
    endClone(event: PIXI.InteractionEvent): void;
    abortClone(event: PIXI.InteractionEvent): void;
    onZoom(): void;
    get cloneInteraction(): MedsurfDraw.CloneInteraction;
    get cloneElement(): MedsurfDraw.PositionPoint | MedsurfDraw.Line | MedsurfDraw.FillCollection | MedsurfDraw.LegendCollection;
}
