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 MarkerGeneratorStates {
    LINE = 0,
    TEXT = 1
}
export declare class MarkerGeneratorModel extends BaseGeneratorModel<MedsurfDraw.Image> {
    layerGroup: Models.LayerGroup;
    image: Models.Image;
    startElement?: MedsurfDraw.PositionPoint;
}
export declare class MarkerGenerator extends BaseGenerator<MedsurfDraw.Image, MarkerGeneratorModel> {
    protected _enableKeyEvents: boolean;
    protected _state: MarkerGeneratorStates;
    protected _lineGenerator: MedsurfDraw.LineGenerator;
    protected _textPrimitiveGenerator: MedsurfDraw.TextPrimitiveGenerator;
    protected _debounceSetupGeneratorMethod: any;
    protected _startPositionPointElement: MedsurfDraw.PositionPoint;
    constructor(model: MarkerGeneratorModel);
    end(): void;
    destroy(options?: {
        children?: boolean;
        texture?: boolean;
        baseTexture?: boolean;
    }): void;
    endGenerator(): void;
    abortGenerator(): void;
    protected _setupGenerator(positionPoint?: MedsurfDraw.PositionPoint): void;
    endLineGenerator(): void;
    abortLineGenerator(): void;
    endTextPrimitiveGenerator(): void;
    abortTextPrimitiveGenerator(): void;
    onKeyPressed(keyCode: string, event: KeyboardEvent): void;
    onKeyReleased(keyCode: string, event: KeyboardEvent): void;
    get drawInteraction(): MedsurfDraw.DrawInteraction<MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection | MedsurfDraw.TextPrimitive>;
    get startElement(): MedsurfDraw.PositionPoint | undefined;
    set startElement(value: MedsurfDraw.PositionPoint | undefined);
}
