import { ToolType, Point } from '..';
import CanvasGraffiti from '../index';
export * from './group';
export type IElement = Required<IElementOptions> & {};
export interface IElementOptions {
    tool: ToolType;
    left: number;
    top: number;
    right: number;
    bottom: number;
    points: Point[];
    lineWidth: CanvasGraffiti['lineWidth'];
    shadowBlur: CanvasGraffiti['shadowBlur'];
    shadowColor: CanvasGraffiti['shadowColor'];
    strokeStyle: CanvasGraffiti['strokeStyle'];
    fillStyle: CanvasGraffiti['fillStyle'];
}
export type OptionNumberKey = keyof Omit<IElementOptions, 'tool' | 'points' | 'shadowColor' | 'fillStyle' | 'strokeStyle'>;
export type CustomRect = {
    left: number;
    right: number;
    top: number;
    bottom: number;
};
export declare class GraffitiEle implements IElement {
    tool: ToolType;
    left: number;
    top: number;
    right: number;
    bottom: number;
    width: number;
    height: number;
    points: Point[];
    lineWidth: CanvasGraffiti['lineWidth'];
    shadowBlur: CanvasGraffiti['shadowBlur'];
    shadowColor: CanvasGraffiti['shadowColor'];
    strokeStyle: CanvasGraffiti['strokeStyle'];
    fillStyle: CanvasGraffiti['fillStyle'];
    isDeleted: boolean;
    constructor(options: IElementOptions);
    moveEle(offsetX: number, offsetY: number): void;
    deleteEle(): void;
}
export declare function isRectIntersect(r1: CustomRect, r2: CustomRect): boolean;
export declare function genRectByTwoPoint(p1: Point, p2: Point): {
    left: number;
    top: number;
    right: number;
    bottom: number;
};
