import { type IDisablable, Vector } from '../../common'; import { type RectangleLike } from '../../geometry'; import type { EventArgs, Graph } from '../../graph'; import type { ModelEventArgs, Node, ResizeOptions } from '../../model'; import { type CellView, type NodeView, View } from '../../view'; import type { SnaplineImplFilter, SnaplineImplOptions } from './type'; import type { PointLike } from '../../types'; export declare class SnaplineImpl extends View implements IDisablable { readonly options: SnaplineImplOptions; protected readonly graph: Graph; protected offset: PointLike; protected timer: number | null; container: SVGElement; protected containerWrapper: Vector; protected horizontal: Vector; protected vertical: Vector; protected get model(): import("../../model").Model; protected get containerClassName(): string; protected get verticalClassName(): string; protected get horizontalClassName(): string; constructor(options: SnaplineImplOptions & { graph: Graph; }); get disabled(): boolean; enable(): void; disable(): void; setFilter(filter?: SnaplineImplFilter): void; protected render(): void; protected startListening(): void; protected stopListening(): void; protected onBatchStop({ name, data }: ModelEventArgs['batch:stop']): void; captureCursorOffset({ view, x, y }: EventArgs['node:mousedown']): void; protected isNodeMovable(view: CellView): boolean; protected getRestrictArea(view?: NodeView): RectangleLike | null; protected snapOnResizing(node: Node, options: ResizeOptions): void; snapOnMoving({ view, e, x, y }: EventArgs['node:mousemove']): void; protected isIgnored(snapNode: Node, targetNode: Node): boolean; protected filter(node: Node): boolean; protected update(metadata: { verticalLeft?: number; verticalTop?: number; verticalHeight?: number; horizontalTop?: number; horizontalLeft?: number; horizontalWidth?: number; }): void; protected resetTimer(): void; show(): this; hide(): this; protected onRemove(): void; dispose(): void; }