import Point from '@wisemapping/web2d';
import { Mindmap } from '..';
import CommandContext from './CommandContext';
import ControlPoint from './ControlPoint';
import Events from './Events';
import NodeModel from './model/NodeModel';
import RelationshipModel from './model/RelationshipModel';
import Topic from './Topic';
declare abstract class ActionDispatcher extends Events {
    private static _instance;
    constructor(commandContext: CommandContext);
    abstract addRelationship(model: RelationshipModel, mindmap: Mindmap): void;
    abstract addTopics(models: NodeModel[], parentTopicId: number[]): void;
    abstract deleteEntities(topicsIds: number[], relIds: number[]): void;
    abstract dragTopic(topicId: number, position: Point, order: number, parentTopic: Topic): void;
    abstract moveTopic(topicId: number, position: Point): void;
    abstract moveControlPoint(ctrlPoint: ControlPoint, point: Point): void;
    abstract changeFontFamilyToTopic(topicIds: number[], fontFamily: string): void;
    abstract changeFontStyleToTopic(topicsIds: number[]): void;
    abstract changeFontColorToTopic(topicsIds: number[], color: string): void;
    abstract changeFontSizeToTopic(topicsIds: number[], size: number): void;
    abstract changeBackgroundColorToTopic(topicsIds: number[], color: string): void;
    abstract changeBorderColorToTopic(topicsIds: number[], color: string): void;
    abstract changeShapeTypeToTopic(topicsIds: number[], shapeType: string): void;
    abstract changeFontWeightToTopic(topicsIds: number[]): void;
    abstract changeTextToTopic(topicsIds: number[], text: string): void;
    abstract shrinkBranch(topicsIds: number[], collapse: boolean): void;
    abstract addFeatureToTopic(topicId: number, type: string, attributes: object): void;
    abstract changeFeatureToTopic(topicId: number, featureId: number, attributes: object): void;
    abstract removeFeatureFromTopic(topicId: number, featureId: number): void;
    static setInstance: (dispatcher: ActionDispatcher) => void;
    static getInstance: () => ActionDispatcher;
}
export default ActionDispatcher;
