import { OnDestroy, Renderer2, AfterViewInit, ElementRef, Injector } from '@angular/core'; import { CanvasDrawMode } from './enums/canvas-draw-mode.enum'; import { ICanvas } from './interfaces/canvas.interface'; import { Point } from './classes/point'; import * as i0 from "@angular/core"; /** * The base directive that is used to extend canvas components. */ export declare abstract class CanvasBaseDirective implements OnDestroy, AfterViewInit { protected injector: Injector; /** * If a different element should handle the inputs, put it into eventElement. */ eventElement: HTMLElement | null; protected elementRef: ElementRef; protected renderer: Renderer2; protected height: number; protected width: number; protected drawMode: CanvasDrawMode; protected clearOnDraw: boolean; private dragAndDropEnabled; private dragging; private dragStartPosition; private dragMaxDistance; private dragStartTimeout; private dragStartTimeoutHandle; private inDrawingLoop; private currentFrameRequestID; private lastTime; private disposed; private canvas; constructor(injector: Injector); ngAfterViewInit(): void; ngOnDestroy(): void; private attachCanvas; toBase64(): string; toBlob(type?: string, quality?: number): Promise; getCanvas(): ICanvas; resize(width: number, height: number): void; protected getCanvasNode(): HTMLElement; protected startDrawing(): void; protected createOffscreenBuffer(width: number, height: number): ICanvas; draw(): void; setDrawMode(drawMode: CanvasDrawMode): void; isDragAndDropEnabled(): boolean; enableDragAndDrop(enable: boolean): void; protected abstract onDraw(canvas: ICanvas, deltaTime?: number): void; protected eventResize(width: number, height: number): void; protected eventDrag(event: PointerEvent): boolean; protected eventDragMove(event: PointerEvent): void; protected eventDrop(event: PointerEvent, startPosition: Point): void; protected eventClick(event: PointerEvent): void; protected eventPointerMove(event: PointerEvent): void; protected eventPointerUp(event: PointerEvent): void; protected eventPointerDown(event: PointerEvent): void; protected eventPointerLeave(event: PointerEvent): void; protected getTime(): number; protected getTimeDelta(): number; protected getDistance(x1: number, y1: number, x2: number, y2: number): number; private requestDraw; private mouseUp; private mouseMove; private mouseDown; private mouseLeave; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }