import Konva from 'konva';
import { Board } from '../Board';
import { ShapeModel } from '../shape/ShapeModel';
import type { Filters, FilterFunctions } from '../types';
export declare class Selection {
    list: Array<ShapeModel>;
    transformer: Konva.Transformer;
    private board;
    private readonly filter;
    private zone;
    private dimensionsTag;
    private startPointerPosition;
    constructor(board: Board);
    get shapes(): ShapeModel<import("konva/lib/Shape").Shape<import("konva/lib/Shape").ShapeConfig> | import("konva/lib/Group").Group, import("konva/lib/Shape").ShapeConfig>[];
    get isVisible(): boolean;
    get isDisabled(): boolean;
    getTransformer(): import("konva/lib/shapes/Transformer").Transformer;
    find(selector: (shape: ShapeModel) => boolean): void;
    selectAll(): void;
    deselectAll(): void;
    reselect(): void;
    multi(shapes: ShapeModel[]): void;
    add(shape: ShapeModel): void;
    toggle(shape: ShapeModel): void;
    deselect(shape: ShapeModel): void;
    delete(): void;
    moveX(value: number): Promise<unknown>;
    moveY(value: number): Promise<unknown>;
    addFilter(filters: Filters | Filters[]): void;
    removeFilter(filters: FilterFunctions | FilterFunctions[]): void;
    group(groupName: string): void;
    private createZone;
    private createTransformer;
    private onDragZoneStart;
    private onDragZoneMove;
    private onDragZoneEnd;
    private onWindowMouseUp;
    private onKeyDown;
    private getParentNode;
    private isBackgroundNode;
    private getTransformerRect;
}
