import { AfterViewInit, ElementRef } from '@angular/core'; import { ConfigService } from '../../config/config.service'; import { SvgService } from '../../svg/svg.service'; import { ElementType, ToolType, WhiteboardElement } from '../../types'; import { ApiService } from '../../api'; import { CanvasService } from '../../canvas'; import { ConnectionUIService, HandleService, SelectionService } from '../../elements'; import { ToolsService } from '../../tools'; import * as i0 from "@angular/core"; export declare class WhiteboardCanvasComponent implements AfterViewInit { svgContainer: ElementRef; apiService: ApiService; configService: ConfigService; toolsService: ToolsService; selectionService: SelectionService; canvasService: CanvasService; svgService: SvgService; connectionUIService: ConnectionUIService; handleService: HandleService; config: import("@angular/core").Signal; elements: import("@angular/core").Signal; layers: import("@angular/core").Signal; selectedToolSignal: import("@angular/core").Signal; selectionBoxSignal: import("@angular/core").Signal; boundingBoxSignal: import("@angular/core").Signal; transform: import("@angular/core").Signal; filteredElements: import("@angular/core").Signal<({ transform: string; isLocked: boolean; blendMode: string; type: ElementType.Pen; points: [number, number][]; pathOptions?: import("../../utils").StrokeOptions | undefined; isComplete?: boolean | undefined; isClosed?: boolean | undefined; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; scaleX?: number | undefined; scaleY?: number | undefined; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; } | { transform: string; isLocked: boolean; blendMode: string; type: ElementType.Rectangle; width: number; height: number; rx: number; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; scaleX?: number | undefined; scaleY?: number | undefined; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; } | { transform: string; isLocked: boolean; blendMode: string; type: ElementType.Ellipse; cx: number; cy: number; rx: number; ry: number; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; scaleX?: number | undefined; scaleY?: number | undefined; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; } | { transform: string; isLocked: boolean; blendMode: string; type: ElementType.Line; x1: number; y1: number; x2: number; y2: number; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; scaleX?: number | undefined; scaleY?: number | undefined; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; } | { transform: string; isLocked: boolean; blendMode: string; type: ElementType.Arrow; x1: number; y1: number; x2: number; y2: number; startHead: import("../../elements").ArrowheadConfig; endHead: import("../../elements").ArrowheadConfig; startBinding: import("../../types").ArrowBinding | null; endBinding: import("../../types").ArrowBinding | null; pathType: import("../../types").ArrowPathType; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; scaleX?: number | undefined; scaleY?: number | undefined; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; } | { transform: string; isLocked: boolean; blendMode: string; type: ElementType.Text; text: string; selection?: { start: number; end: number; } | undefined; scaleX: number; scaleY: number; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; } | { transform: string; isLocked: boolean; blendMode: string; type: ElementType.Image; width: number; height: number; src: string | ArrayBuffer; id: string; x: number; y: number; style: import("../../types").WhiteboardElementStyle; rotation: number; opacity: number; zIndex: number; scaleX?: number | undefined; scaleY?: number | undefined; layerId?: string | undefined; groupId?: string | undefined; locked?: boolean | undefined; isDeleting?: boolean | undefined; selectAfterDraw?: boolean | undefined; })[]>; private buildTransform; private computeIsLocked; private computeBlendMode; canvasWidth: import("@angular/core").Signal; canvasHeight: import("@angular/core").Signal; zoom: import("@angular/core").Signal; x: import("@angular/core").Signal; y: import("@angular/core").Signal; canvasX: import("@angular/core").Signal; canvasY: import("@angular/core").Signal; gridSize: import("@angular/core").Signal; backgroundColor: import("@angular/core").Signal; enableGrid: import("@angular/core").Signal; fullScreen: import("@angular/core").Signal; svgDimensions: import("@angular/core").Signal<{ width: string; height: string; }>; svgViewBox: import("@angular/core").Signal; contentTransform: import("@angular/core").Signal; gridConfig: import("@angular/core").Signal<{ transform: string; width: number; height: number; }>; cursor: import("@angular/core").Signal; readonly isLineOnlySelection: import("@angular/core").Signal; readonly lineEndpointHandles: import("@angular/core").Signal; readonly curveHandles: import("@angular/core").Signal; readonly snapIndicator: import("@angular/core").Signal; readonly visibleConnectionPoints: import("@angular/core").Signal; /** Check if an arrow is currently selected (for showing endpoint handles) */ isArrowSelected(elementId: string): boolean; types: typeof ElementType; tools: typeof ToolType; ngAfterViewInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }