import * as PIXI from "pixi.js-legacy";
import * as MedsurfDraw from "../../public-api";
import { ImageObject } from "./ImageObject";
import { ModeInteraction } from "../../public-api";
export declare class BaseContainerModel {
}
export declare class BaseContainerImageModel extends BaseContainerModel {
    image: MedsurfDraw.Image | MedsurfDraw.DeepZoomImage;
}
export declare abstract class BaseContainer<TData extends BaseContainerModel | BaseContainerImageModel> extends PIXI.Container {
    protected _data: TData;
    protected _modeInteraction: ModeInteraction<ImageObject>;
    protected _debounceStartDrawingMethod: EventListener;
    protected _debounceDrawMethod: EventListener;
    protected constructor(data: TData);
    abstract init(parent: MedsurfDraw.ImageObject): void;
    startDrawing(): void;
    stopDrawing(selfheal_timeout: number): void;
    abstract draw(): void;
    destroy(options?: {
        children?: boolean;
        texture?: boolean;
        baseTexture?: boolean;
    }): void;
    getRectangle(): PIXI.Rectangle;
    getElementRectangle(): PIXI.Rectangle;
    getRotation(): number;
    showItem(): void;
    hideItem(): void;
    toggleItem(override?: boolean): void;
    onImageZoom(scaleX: number, scaleY: number): void;
    get data(): TData;
    set data(value: TData);
    get image(): MedsurfDraw.Image | MedsurfDraw.DeepZoomImage;
    get imageCanvas(): HTMLCanvasElement;
    get imageScale(): PIXI.IPoint;
    get imageDimensions(): MedsurfDraw.Dimensions;
    get modeInteraction(): ModeInteraction<ImageObject>;
    set modeInteraction(value: ModeInteraction<ImageObject>);
}
