import { ElementClass, ElementPeer, Group } from '@wisemapping/web2d';
import { TopicShapeType } from '../model/INodeModel';
import SizeType from '../SizeType';
import TopicShape from './TopicShape';
declare abstract class DefaultTopicShape<T extends ElementClass<ElementPeer>> implements TopicShape {
    private _shape;
    private _type;
    constructor(shape: T, type: TopicShapeType);
    getShapeType(): TopicShapeType;
    setStroke(width: number | null, style: string, color: string): void;
    setOpacity(value: number): void;
    setFill(value: string, opacity?: number): void;
    setVisibility(value: boolean, fade?: number): void;
    protected getShape(): T;
    setCursor(value: string): void;
    appendTo(group: Group): void;
    removeFrom(group: Group): void;
    abstract setSize(width: number, height: number): void;
    abstract getSize(): SizeType | null;
    abstract setPosition(x: number, y: number): void;
}
export default DefaultTopicShape;
