import * as _leafer_ui_interface from '@leafer-ui/interface';
import { IArrow, IArrowData, IArrowStyle, IArrowInputData, IPathDataArrow, IPathArrowModule, IPathCommandData, IPointData, IValue } from '@leafer-ui/interface';
import { Line, LineData } from '@leafer-ui/draw';

declare class Arrow extends Line implements IArrow {
    get __tag(): string;
    __: IArrowData;
    endArrow?: IArrowStyle;
    constructor(data?: IArrowInputData);
    static registerArrow(name: string, data: IPathDataArrow): void;
}

declare class ArrowData extends LineData implements IArrowData {
}

declare const PathArrowModule: IPathArrowModule;

declare const PathMatrixHelper: {
    layout(data: IPathCommandData, x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, origin?: IPointData): void;
    rotate(data: IPathCommandData, rotation?: number, center?: IPointData): void;
};

declare function arrowType(defaultValue?: IValue): (target: _leafer_ui_interface.ILeaf, key: string) => void;

export { Arrow, ArrowData, PathArrowModule, PathMatrixHelper, arrowType };
