import { ElementModel } from './ElementModel';
import * as Y from 'yjs';
import { EditorConfig } from '../../edit/EditorConfig';
import { LiveCursor } from '../../LiveCursor';
export declare class LaserPointerModel extends ElementModel<paper.Path> {
    item: paper.Path | null;
    private clientId;
    private sliceBegin;
    private displayStrokeWidth;
    private cachedPoints;
    protected clearLocalPointsWhenYPointsChange: boolean;
    protected shouldUseLocalPoints: boolean;
    protected localPointsPick: number;
    private removeElement;
    constructor(clientId: string, root: Y.Map<any>, scope: paper.PaperScope, liveCursor: LiveCursor, removeElement: (uuid: string) => void, isPerformanceMode: () => boolean);
    private handleLaserPropChange;
    protected subBindObserver(): void;
    protected subDispose(): void;
    beginRemoveAnimate(): void;
    private average;
    private createPath;
    private parsePoints;
    private matrixedPoints;
    private getNextSegments;
    protected onVectorUpdate(): void;
    createPaperItem(): void;
    editorConfig(): EditorConfig;
    protected vectorKeys(): string[];
    protected styleKeys(): {
        include: string[];
        exclude: string[];
    };
    protected onStyleKeyUpdate(_key: string): void;
    protected liveCursorPoint(): paper.Point | null;
}
//# sourceMappingURL=LaserPointerModel.d.ts.map