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 enum ArrowGeneratorStates {
    ARROW = 0,
    TEXT = 1
}
export declare class ArrowGeneratorModel extends BaseGeneratorModel<MedsurfDraw.Image> {
    layerGroup: Models.LayerGroup;
    image: Models.Image;
    hasWedgePoint: boolean;
}
export declare class ArrowGenerator extends BaseGenerator<MedsurfDraw.Image, ArrowGeneratorModel> {
    protected _state: ArrowGeneratorStates;
    protected _arrowPrimitiveGenerator: MedsurfDraw.ArrowPrimitiveGenerator;
    protected _textPrimitiveGenerator: MedsurfDraw.TextPrimitiveGenerator;
    protected _startPositionPointElement: MedsurfDraw.PositionPoint;
    protected _lineElement: MedsurfDraw.Line;
    constructor(model: ArrowGeneratorModel);
    end(): void;
    destroy(options?: {
        children?: boolean;
        texture?: boolean;
        baseTexture?: boolean;
    }): void;
    endGenerator(): void;
    abortGenerator(): void;
    protected _setupGenerator(positionPoint?: MedsurfDraw.PositionPoint): void;
    protected destroyText(): void;
    endArrowPrimitiveGenerator(): void;
    abortArrowPrimitiveGenerator(): void;
    startTextPrimitiveGenerator(): void;
    endTextPrimitiveGenerator(): void;
    abortTextPrimitiveGenerator(): void;
    get drawInteraction(): MedsurfDraw.DrawInteraction<MedsurfDraw.ArrowPrimitive | MedsurfDraw.TextPrimitive>;
}
