import { CanvasWhiteboardShape } from '../_classes/shape/canvas-whiteboard-shape';
import { CanvasWhiteboardShapeOptions } from '../_classes/shape/canvas-whiteboard-shape-options';
import { CanvasWhiteboardPoint } from '../_classes/canvas-whiteboard-point.model';
import { Observable } from 'rxjs';
export declare type INewCanvasWhiteboardShape<T extends CanvasWhiteboardShape> = new (positionPoint?: CanvasWhiteboardPoint, options?: CanvasWhiteboardShapeOptions, ...args: any[]) => T;
export declare class CanvasWhiteboardShapeService {
    private registeredShapesSubject;
    registeredShapes$: Observable<Array<INewCanvasWhiteboardShape<CanvasWhiteboardShape>>>;
    constructor();
    getShapeConstructorFromShapeName(shapeName?: string): INewCanvasWhiteboardShape<CanvasWhiteboardShape> | undefined;
    getCurrentRegisteredShapes(): Array<INewCanvasWhiteboardShape<CanvasWhiteboardShape>>;
    isRegisteredShape(shape: INewCanvasWhiteboardShape<CanvasWhiteboardShape>): boolean;
    registerShape(shape: INewCanvasWhiteboardShape<CanvasWhiteboardShape>): void;
    registerShapes(shapes: Array<INewCanvasWhiteboardShape<CanvasWhiteboardShape>>): void;
    unregisterShape(shape: INewCanvasWhiteboardShape<CanvasWhiteboardShape>): void;
    unregisterShapes(shapes: Array<INewCanvasWhiteboardShape<CanvasWhiteboardShape>>): void;
}
