import { PointF, RotatedRectangleF, Path, RectangleF, Transform } from "@aurigma/design-atoms-model/Math";
import { Margin } from "@aurigma/design-atoms-model/Math/Margin";
export declare abstract class Graphics {
    static drawCross(ctx: CanvasRenderingContext2D, x: number, y: number, size: number, width: number, baselineColor: string): void;
    static drawLine(ctx: CanvasRenderingContext2D, x: number, y: number, x1: number, y1: number, lineWidth: number, lineColor: string, opacity?: number, dashWidth?: number[]): void;
    static drawDashedLine(ctx: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number, lineWidth: number, color: string, altColor: string, dashWidth: number, altDashWidth: number, opacity?: number): void;
    static drawPolyline(ctx: CanvasRenderingContext2D, points: PointF[], lineWidth: number, lineColor: string, opacity: number): void;
    static drawPath(ctx: CanvasRenderingContext2D, path: any, center: PointF, transform: Transform, borderWidth: number, borderColor: string, opacity: number, dashWidth?: number[], altBorderColor?: string): void;
    static fillPath(ctx: CanvasRenderingContext2D, path: any, center: PointF, transform: Transform, fillColor: string, opacity?: number): void;
    static drawStroke(ctx: CanvasRenderingContext2D, path: any, center: PointF, transform: Transform, borderWidth: number, borderColor: string, altBorderColor: string, opacity: number, dash: number[]): void;
    static path(ctx: CanvasRenderingContext2D, path: any, center: PointF, transform: Transform, fillColor: string, borderWidth: number, borderColor: string, opacity: number, dashWidth: number[], altBorderColor?: string): void;
    static clipPath(ctx: CanvasRenderingContext2D, path: Path): void;
    static drawImage(ctx: CanvasRenderingContext2D, image: HTMLImageElement | HTMLCanvasElement, rotatedRectangle: RotatedRectangleF, scaleX: number, scaleY: number, disableSmoothing?: boolean, maskColor?: any, opacity?: number, imageRect?: RectangleF, increaseImageRect?: number): void;
    static drawRectangle(ctx: CanvasRenderingContext2D, rotatedRectangle: RotatedRectangleF, borderWidth: number, borderColor: string, opacity: number): void;
    static fillRectangle(ctx: CanvasRenderingContext2D, rotatedRectangle: RotatedRectangleF, fillColor: any, opacity?: number): void;
    static rectangle(ctx: CanvasRenderingContext2D, rotatedRectangle: RotatedRectangleF, borderWidth: number, borderColor: string, fillColor?: any, opacity?: number, strokeDash?: number[]): void;
    static measureText(ctx: CanvasRenderingContext2D, text: string, point: PointF, font: string, fillColor?: string, strokeColor?: string, angle?: number): TextMetrics;
    private static _drawTextBackground;
    static text(ctx: CanvasRenderingContext2D, text: string, point: PointF, font: string, fillColor?: string, strokeColor?: string, angle?: number, maxWidth?: any, textAlign?: CanvasTextAlign, textBaseline?: CanvasTextBaseline, background?: string, border?: string, borderWidth?: number, backgroundMargin?: Margin, backgroundCornerRadius?: number): void;
    private static _splitTextToLines;
    static isFullTransparentColor(color: any): boolean;
    static clearCanvas(context: CanvasRenderingContext2D, preserveTransform?: boolean): void;
    static drawRoundedRectangle(ctx: CanvasRenderingContext2D, rect: RectangleF, rounded: number): void;
}
