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 LineGeneratorStates {
    START = 0,
    END = 1,
    FINISH = 2
}
export declare class LineGeneratorModel extends BaseGeneratorModel<MedsurfDraw.Image> {
    layerGroup: Models.LayerGroup;
    image: Models.Image;
    stickMode: MedsurfDraw.StickMode;
    bezierCourve?: boolean;
    startElement?: MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection;
}
export declare class LineGenerator extends BaseGenerator<MedsurfDraw.Image, LineGeneratorModel> {
    protected _enableKeyEvents: boolean;
    protected _state: LineGeneratorStates;
    protected _startPositionPointGenerator: MedsurfDraw.PositionPointGenerator;
    protected _endPositionPointGenerator: MedsurfDraw.PositionPointGenerator;
    protected _lineElement: MedsurfDraw.Line;
    constructor(model: LineGeneratorModel);
    end(): void;
    destroy(options?: {
        children?: boolean;
        texture?: boolean;
        baseTexture?: boolean;
    }): void;
    endGenerator(): void;
    abortGenerator(): void;
    protected _setupGenerator(): void;
    destroyEnd(): void;
    endStartPositionPointGenerator(): void;
    abortStartPositionPointGenerator(): void;
    startEndPositionPointGenerator(): void;
    endEndPositionPointGenerator(): void;
    updatePointEndPositionPointGenerator(): void;
    abortEndPositionPointGenerator(): void;
    onPressedShiftKey(keyCode: string, event: KeyboardEvent): void;
    onReleaseShiftKey(keyCode: string, event: KeyboardEvent): void;
    get drawInteraction(): MedsurfDraw.DrawInteraction<MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection>;
    get startPositionPointElement(): MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection;
    get endPositionPointElement(): MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection;
    get lineElement(): MedsurfDraw.Line;
    get bezierCourve(): boolean;
    set bezierCourve(value: boolean);
    get stickMode(): MedsurfDraw.StickMode;
    set stickMode(value: MedsurfDraw.StickMode);
    get startElement(): MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection | undefined;
    set startElement(value: MedsurfDraw.PositionPoint | MedsurfDraw.FillCollection | undefined);
}
