import { type Y } from '@blockeditor/store';
import type { SerializedXYWH } from '../index.js';
import { type BaseProps, ElementModel } from './base.js';
import type { FontWeight } from './common.js';
import { type FontStyle } from './common.js';
import { type StrokeStyle } from './common.js';
export type ShapeType = 'rect' | 'triangle' | 'ellipse' | 'diamond';
export type ShapeStyle = 'General' | 'Scribbled';
export declare enum ShapeTextFontSize {
    SMALL = 12,
    MEDIUM = 20,
    LARGE = 28,
    XLARGE = 36
}
export type ShapeProps = BaseProps & {
    shapeType: ShapeType;
    radius: number;
    filled: boolean;
    fillColor: string;
    strokeWidth: number;
    strokeColor: string;
    strokeStyle: StrokeStyle;
    shapeStyle: ShapeStyle;
    roughness?: number;
    text?: Y.Text;
    color?: string;
    fontSize?: number;
    fontFamily?: string;
    fontWeight?: FontWeight;
    fontStyle?: FontStyle;
    textAlign?: 'left' | 'center' | 'right';
    textHorizontalAlign?: 'left' | 'center' | 'right';
    textVerticalAlign?: 'top' | 'center' | 'bottom';
};
export declare class ShapeElementModel extends ElementModel<ShapeProps> {
    static propsToY(props: ShapeProps): ShapeProps;
    xywh: SerializedXYWH;
    rotate: number;
    shapeType: ShapeType;
    radius: number;
    filled: boolean;
    fillColor: string;
    strokeWidth: number;
    strokeColor: string;
    strokeStyle: StrokeStyle;
    shapeStyle: ShapeStyle;
    roughness: number;
    text?: Y.Text;
    color?: string;
    fontSize?: number;
    fontFamily?: string;
    fontWeight?: FontWeight;
    fontStyle?: FontStyle;
    textAlign?: 'left' | 'center' | 'right';
    textHorizontalAlign?: 'left' | 'center' | 'right';
    textVerticalAlign?: 'top' | 'center' | 'bottom';
    get type(): string;
}
//# sourceMappingURL=shape.d.ts.map