import { AiaImageAnnotatorComponent } from '../aia-image-annotator.component'; import { Point } from './point.interface'; import { ContactEvent } from './contact-event'; import { PositionTextPair } from './position-text-pair.interface'; export declare type StateName = 'pencil' | 'text'; export declare abstract class DrawState { abstract getName(): StateName; abstract contactStart(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; abstract contactMove(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; abstract contactEnd(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; abstract cleanUp(imageAnnotator: AiaImageAnnotatorComponent): void; } export declare class PencilState extends DrawState { currentCommand: PencilCommand; lastCoord: Point; /** * Draws the next point in the path * @param ctx Canvas to be drawn on * @param point Next point to draw */ private drawNextPoint; getName(): StateName; contactStart(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; contactMove(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; contactEnd(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; cleanUp(imageAnnotator: AiaImageAnnotatorComponent): void; } export declare class TextState extends DrawState { private currentCommand; private currentPosition; getName(): StateName; private generatePositionTextPairs; private recordCommandAndReset; contactStart(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; contactMove(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; contactEnd(imageAnnotator: AiaImageAnnotatorComponent, ev: ContactEvent): void; cleanUp(imageAnnotator: AiaImageAnnotatorComponent): void; } export interface DrawCommand { draw(ctx: CanvasRenderingContext2D): void; } export declare class PencilCommand implements DrawCommand { private pathArray; private color; constructor(); addPoint(point: Point): void; setColor(color: string): void; draw(ctx: CanvasRenderingContext2D): void; } export declare class TextCommand implements DrawCommand { private positionTextPairs; private color; private font; addPositionTextPairs(pairs: PositionTextPair[]): void; setColor(color: string): void; setFont(font: string): void; draw(ctx: CanvasRenderingContext2D): void; } export declare class ClearCommand implements DrawCommand { private canvasWidth; private canvasHeight; constructor(canvasWidth: number, canvasHeight: number); draw(ctx: CanvasRenderingContext2D): void; }