import Konva from 'konva'; import { Board } from '../../Board'; import type { Filters, ShapeConfig, FilterFunctions, Nullable } from '../../types'; export declare abstract class ShapeModel { node: T; config: ShapeConfig; protected readonly board: Board; private readonly flip; private readonly filter; private deleted; private selectable; private filtersList; constructor(board: Board, node: T, config?: ShapeConfig); get isActive(): boolean; get isDeleted(): boolean; get isVisible(): any; get isInvisible(): boolean; get isSelectable(): boolean; get group(): Nullable; get name(): string; get filters(): Filters[]; abstract get type(): string; set isSelectable(selectable: boolean); set group(name: Nullable); hasGroup(): boolean; flipX(): void; flipY(): void; select(): void; deselect(): void; addFilter(filter: Filters | Filters[]): void; removeFilter(filter: FilterFunctions | FilterFunctions[]): void; delete(): void; undelete(): void; destroy(): void; rotate(theta: number): void; x(): number; y(): number; width(): number; height(): number; scale(): import("konva/lib/types").Vector2d; scaleX(): number; scaleY(): number; show(): import("konva/lib/Shape").Shape | import("konva/lib/Group").Group; hide(): import("konva/lib/Shape").Shape | import("konva/lib/Group").Group; update(attributes: Partial

): void; to(attributes: Partial

& { duration: number; } & Partial<{ onUpdate: () => void; onFinish: () => void; }>): void; private registerEvents; private getFiltersDiff; }