import { Component, PropType } from 'vue';
export type IDotSide = 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
export type EventType = 'change' | 'drag' | 'drag-start' | 'drag-end' | 'resize' | 'resize-start' | 'resize-end' | 'rotate' | 'rotate-start' | 'rotate-end' | 'skew' | 'skew-start' | 'skew-end';
export type IDot = {
    side: IDotSide;
    cursor?: string;
};
export interface MarklineData {
    top?: null | number;
    left?: null | number;
    diffX?: number;
    diffY?: number;
}
export declare const DragerProps: {
    type: {
        type: PropType<"rect" | "text" | "image">;
        default: string;
    };
    tag: {
        type: PropType<string | Component>;
        default: string;
    };
    resizable: {
        type: BooleanConstructor;
        default: boolean;
    };
    rotatable: {
        type: BooleanConstructor;
        default: boolean;
    };
    skewable: {
        type: BooleanConstructor;
        default: boolean;
    };
    boundary: {
        type: BooleanConstructor;
    };
    disabled: BooleanConstructor;
    width: {
        type: NumberConstructor;
        default: number;
    };
    height: {
        type: NumberConstructor;
        default: number;
    };
    left: {
        type: NumberConstructor;
        default: number;
    };
    top: {
        type: NumberConstructor;
        default: number;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
    angle: {
        type: NumberConstructor;
        default: number;
    };
    color: {
        type: StringConstructor;
        default: string;
    };
    minWidth: {
        type: NumberConstructor;
        default: number;
    };
    minHeight: {
        type: NumberConstructor;
        default: number;
    };
    maxWidth: {
        type: NumberConstructor;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    aspectRatio: {
        type: NumberConstructor;
    };
    selected: BooleanConstructor;
    snapToGrid: BooleanConstructor;
    gridX: {
        type: NumberConstructor;
        default: number;
    };
    gridY: {
        type: NumberConstructor;
        default: number;
    };
    scaleRatio: {
        type: NumberConstructor;
        default: number;
    };
    disabledKeyEvent: BooleanConstructor;
    border: {
        type: BooleanConstructor;
        default: boolean;
    };
    resizeList: {
        type: PropType<IDotSide[]>;
    };
    equalProportion: {
        type: BooleanConstructor;
    };
    checkCollision: {
        type: BooleanConstructor;
    };
    snap: BooleanConstructor;
    snapThreshold: {
        type: NumberConstructor;
        default: number;
    };
    markline: PropType<boolean | ((e: MarklineData) => void)>;
    extraLines: PropType<(target: DOMRect) => Element[] | Array<{
        showTop?: number;
        top?: number;
        showLeft?: number;
        left?: number;
    }>>;
};
export interface DragData {
    width: number;
    height: number;
    left: number;
    top: number;
    angle: number;
    skew?: number[];
}
