import { Mindmap } from '..';
import CommandContext from './CommandContext';
import { PivotType } from './RelationshipControlPoints';
import EventDispispatcher from './EventDispatcher';
import NodeModel from './model/NodeModel';
import RelationshipModel from './model/RelationshipModel';
import Topic from './Topic';
import PositionType from './PositionType';
import LayoutEventBusType from './LayoutEventBusType';
declare abstract class ActionDispatcher extends EventDispispatcher<LayoutEventBusType> {
    private static _instance;
    private _commandContext;
    constructor(commandContext: CommandContext);
    getCommandContext(): 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: PositionType, order: number | null, parentTopic: Topic | null): void;
    abstract moveTopic(topicId: number, position: PositionType): void;
    abstract moveControlPoint(model: RelationshipModel, ctrlPoint: PositionType, index: PivotType): 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(topicIds: 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;
