import { ISize, Widget } from "./Widget.ts";
type Point = {
    x: number;
    y: number;
};
type Rect = {
    x: number;
    y: number;
    width: number;
    height: number;
};
export declare class SVGGlowFilter {
    protected id: any;
    protected filter: any;
    protected feOffset: any;
    protected feColorMatrix: any;
    protected feGaussianBlur: any;
    protected feBlend: any;
    constructor(target: any, id: string);
    rgb2ColorMatrix(color: string): string;
    enable(enable: boolean): this;
    update(color: string): this;
}
export declare class SVGWidget extends Widget {
    static _class: string;
    protected _boundingBox: any;
    protected transition: any;
    protected _drawStartPos: "center" | "origin";
    protected _svgSelectionFilter: SVGGlowFilter;
    protected _parentRelativeDiv: any;
    protected _parentOverlay: any;
    constructor();
    move(_?: any, transitionDuration?: any): this;
    _enableOverflow: boolean;
    enableOverflow(): boolean;
    enableOverflow(_: boolean): this;
    _enableOverflowScroll: boolean;
    enableOverflowScroll(): boolean;
    enableOverflowScroll(_: boolean): this;
    size(): ISize;
    size(_: any): this;
    resize(_size?: {
        width: number;
        height: number;
    }): any;
    svgGlowID(): string;
    target(): null | HTMLElement | SVGElement;
    target(_: null | string | HTMLElement | SVGElement): this;
    get parentRelativeDiv(): any;
    parentOverlay(): any;
    enter(domNode: any, element: any): void;
    update(domNode: any, element: any): void;
    postUpdate(domNode: any, element: any): void;
    exit(domNode?: any, element?: any): void;
    getOffsetPos(): Point;
    getBBox(refresh?: boolean, round?: boolean): Rect;
    contains(point: Point): boolean;
    containsRect(point: Point): boolean;
    containsCircle(radius: number, point: Point): boolean;
    intersection(pointA: Point, pointB: Point): Point | null;
    intersectRect(pointA: Point, pointB: Point): Point | null;
    intersectRectRect(rect1: Rect, rect2: Rect): Rect;
    intersectCircle(radius: number, pointA: Point, pointB: Point): Point | null;
    distance(pointA: Point, pointB: Point): number;
    serializeSVG(extraStyles?: string): string;
    toBlob(extraStyles?: string): Blob;
    rasterize(extraStyles?: string, ...extraWidgets: SVGWidget[]): Promise<Blob>;
    downloadSVG(extraStyles?: string): void;
    downloadPNG(filename?: string, extraStyles?: string, ...extraWidgets: SVGWidget[]): void;
    _pushMarkers(element?: any): void;
    _popMarkers(element?: any): void;
    _popMarkersDebounced: (..._dummyArgs: any[]) => void;
    _fixIEMarkers(element?: any): void;
}
export interface SVGWidget {
    selectionGlow(): boolean;
    selectionGlow(_: boolean): this;
    selectionGlowColor(): string;
    selectionGlowColor(_: string): this;
}
export {};
