import { ShapePoolItem } from '../configs/shapes';
import { LinePoolItem } from '../configs/lines';
import { ImageClipDataRange, PPTElementOutline, PPTElementShadow, Gradient } from './slides';
export declare enum ElementOrderCommands {
    UP = "up",
    DOWN = "down",
    TOP = "top",
    BOTTOM = "bottom"
}
export declare enum ElementAlignCommands {
    TOP = "top",
    BOTTOM = "bottom",
    LEFT = "left",
    RIGHT = "right",
    VERTICAL = "vertical",
    HORIZONTAL = "horizontal",
    CENTER = "center"
}
export declare const enum OperateBorderLines {
    T = "top",
    B = "bottom",
    L = "left",
    R = "right"
}
export declare const enum OperateResizeHandlers {
    LEFT_TOP = "left-top",
    TOP = "top",
    RIGHT_TOP = "right-top",
    LEFT = "left",
    RIGHT = "right",
    LEFT_BOTTOM = "left-bottom",
    BOTTOM = "bottom",
    RIGHT_BOTTOM = "right-bottom"
}
export declare const enum OperateLineHandlers {
    START = "start",
    END = "end",
    C = "ctrl",
    C1 = "ctrl1",
    C2 = "ctrl2"
}
export interface AlignmentLineAxis {
    x: number;
    y: number;
}
export interface AlignmentLineProps {
    type: 'vertical' | 'horizontal';
    axis: AlignmentLineAxis;
    length: number;
}
export interface MultiSelectRange {
    minX: number;
    maxX: number;
    minY: number;
    maxY: number;
}
export interface ImageClipedEmitData {
    range: ImageClipDataRange;
    position: {
        left: number;
        top: number;
        width: number;
        height: number;
    };
}
export interface CreateElementSelectionData {
    start: [number, number];
    end: [number, number];
}
export interface CreateCustomShapeData {
    start: [number, number];
    end: [number, number];
    path: string;
    viewBox: [number, number];
    fill?: string;
    outline?: PPTElementOutline;
}
export interface CreatingTextElement {
    type: 'text';
    vertical?: boolean;
}
export interface CreatingShapeElement {
    type: 'shape';
    data: ShapePoolItem;
}
export interface CreatingLineElement {
    type: 'line';
    data: LinePoolItem;
}
export type CreatingElement = CreatingTextElement | CreatingShapeElement | CreatingLineElement;
export type TextFormatPainterKeys = 'bold' | 'em' | 'underline' | 'strikethrough' | 'color' | 'backcolor' | 'fontsize' | 'fontname' | 'align';
export interface TextFormatPainter {
    keep: boolean;
    bold?: boolean;
    em?: boolean;
    underline?: boolean;
    strikethrough?: boolean;
    color?: string;
    backcolor?: string;
    fontsize?: string;
    fontname?: string;
    align?: 'left' | 'right' | 'center';
}
export interface ShapeFormatPainter {
    keep: boolean;
    fill?: string;
    gradient?: Gradient;
    outline?: PPTElementOutline;
    opacity?: number;
    shadow?: PPTElementShadow;
}
