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 CopyLayerGroupMapping {
    old: Models.LayerGroup;
    new: Models.LayerGroup;
}
export declare class CloneLayerGeneratorModel extends BaseGeneratorModel<MedsurfDraw.Image> {
    imageObjects: Models.ImageObject[];
    image: Models.Image;
    cloneLayerGroup: Models.LayerGroup;
    imageObjectMappings: MedsurfDraw.CopyImageObjectMapping[];
    layerGroupMappings: CopyLayerGroupMapping[];
    relativePoint?: Models.Point | undefined;
}
export declare class CloneLayerGenerator extends BaseGenerator<MedsurfDraw.Image, CloneLayerGeneratorModel> {
    protected _generators: MedsurfDraw.CloneItemGenerator[];
    _debounceEndGeneratorMethod: any;
    protected _cloneLayerGroup: Models.LayerGroup;
    constructor(model: CloneLayerGeneratorModel);
    start(event: PIXI.InteractionEvent): void;
    end(): void;
    destroy(options?: {
        children?: boolean;
        texture?: boolean;
        baseTexture?: boolean;
    }): void;
    endGenerator(): void;
    abortGenerator(): void;
    cloneLayerGroup(model: Models.LayerGroup, relativePoint?: Models.Point | undefined): Models.LayerGroup;
    cloneLayerImageObject(layerImageObject: Models.LayerImageObject, layerModel: Models.LayerGroup, relativePoint?: Models.Point | undefined): {
        element: Models.LayerImageObject;
        relativePoint: Models.Point;
    };
    cloneRelations(): void;
    createLayerGroupInstance(model: Models.LayerGroup, relativePoint?: Models.Point | undefined): Models.LayerGroup;
    createLayerGroupModel(model: Models.LayerGroup): Models.LayerGroup;
    createLayerGroupContentModel(model: Models.LayerGroupContent): Models.LayerGroupContent;
    createLayerImageObjectModel(model: Models.LayerImageObject, layerGroup: Models.LayerGroup, imageObject: string): Models.LayerImageObject;
    endClone(event: PIXI.InteractionEvent): void;
    abortClone(event: PIXI.InteractionEvent): void;
}
