import { Selection as d3SelectionT } from "d3-selection";
export declare class SelectionBase {
    protected __widget: any;
    private __svgGlowID;
    constructor(widget: any);
    svgGlowID(): string;
}
export interface ISelectionItem {
    _id: string;
    element(): d3SelectionT<Element, any, Element, any>;
}
export declare class SelectionBag extends SelectionBase {
    items: {
        [key: string]: ISelectionItem;
    };
    constructor(widget: any);
    clear(): void;
    isEmpty(): boolean;
    append(item: ISelectionItem): void;
    remove(item: ISelectionItem): void;
    isSelected(item: ISelectionItem): boolean;
    get(): any[];
    set(itemArray: ISelectionItem[]): void;
    click: (item: ISelectionItem, evt: any) => void;
}
export declare class SimpleSelection extends SelectionBase {
    constructor(widget: any, widgetElement: any, skipBringToTop?: any);
    _widgetElement: any;
    widgetElement(_?: any): any;
    _skipBringToTop: any;
    skipBringToTop(_?: any): any;
    _initialSelection: (d: any) => boolean;
    enter(elements: any): void;
    click(domNode: any): boolean;
    mouseOver(domNode: any): void;
    mouseOut(domNode: any): void;
    selected(domNode: any): boolean;
    selection(_?: any): string[] | this;
    selection2(): any[];
    selection2(isSelected: (d: any) => boolean): this;
}
export declare function SimpleSelectionMixin(skipBringToTop: any): void;
export declare function faKeys(): string[];
export declare function fa5Class(key: string): string;
export declare function faChar(key: string, defChar?: string): string;
export declare function faCode(key: string): number;
export declare function removeHTMLFromString(str: string, div?: HTMLDivElement): string;
export declare function templateFields(tpl: string): string[];
export declare function template(tpl?: string, _args?: any): string;
export declare function naturalSort(data: any, order: any, idx: any, sortCaseSensitive: any): any;
export declare function multiSort(data: any, sortBy: any): any;
export declare const Selection: typeof SelectionBag;
export declare function urlParams(): {};
export declare function endsWith(str: string, searchStr: string, pos?: number): boolean;
export declare function d3ArrayAdapter(array: any): {
    ownerDocument: {
        createElement(_tagName: any): {
            __data__: any;
        };
        createElementNS(_ns: any, tagName: any): any;
    };
    querySelectorAll(selectors: any): any;
    appendChild(node: any): any;
    insertBefore(node: any, referenceNode: any): any;
    removeChild(node: any): any;
};
export declare function downloadBlob(blob: Blob, filename: string): any;
export declare function timestamp(): string;
export declare function downloadString(format: "CSV" | "TSV" | "JSON" | "TEXT" | "SVG", blob: string, id?: string): void;
export declare function widgetPath(classID: any): string;
export declare function parseClassID(classID: any, prefix?: string): {
    package: string;
    path: string;
    widgetID: any;
    memberWidgetID: any;
};
export declare function checksum(s: any): string;
export declare function getTime(): any;
export declare function mixin(dest: any, _sources: any): any;
export declare function exists(prop: any, scope: any): boolean;
export declare function logStringify(obj: any): string;
export declare function debounce(func: any, threshold?: number, execAsap?: boolean): (..._dummyArgs: any[]) => void;
export declare function parseVersionString(versionString: any): {
    major: number;
    minor: number;
    patch: number;
};
export type TextSize = {
    width: number;
    height: number;
};
export declare function textSize(_text: string | string[], fontName?: string, fontSize?: number, bold?: boolean): Readonly<TextSize>;
export type TextRect = {
    width: number;
    height: number;
    top: number;
    right: number;
    bottom: number;
    left: number;
};
export declare function textRect(text: string, fontName?: string, fontSize?: number, bold?: boolean): Readonly<TextRect>;
export declare function safeRaise(domNode: Element): void;
