export declare class CommonUtils {
    private static _noDataImageSrc;
    static noDataImageSrc: string;
    private static copy(source, isDeep);
    /**
     * 浅拷贝一个对象
     * @param source
     */
    static shallowCopy(source: Object): Object;
    /**
     * 深拷贝一个对象
     * @param source
     */
    static deepCopy(source: Object): Object;
    /**
     * 比较两个对象是否相等，如果提供`trackItemBy`参数，则只比较`trackItemBy`数组列出的属性是否相等；
     * 如果未提供`trackItemBy`，则按值比较两个对象是否相等。
     *
     * @param item1 待比较的值1
     * @param item2 待比较的值2
     * @param {string[]} trackItemBy 待比较的属性列表
     * @returns {boolean}
     */
    static compareWithKeyProperty(item1: any, item2: any, trackItemBy: string[]): boolean;
    /**
     * 判断一个对象是否不包含任何属性
     *
     * @param obj
     * @returns {boolean}
     */
    static isEmptyObject(obj: any): boolean;
    /**
     * 负责两个对象的合并,将sourceObject 中的属性添加到targetObject 中
     *
     * @param targetObject 要合并的源对象
     * @param sourceObject 合并的对象信息
     * @returns {Object} 如果`targetObject`非空，则返回`targetObject`，否则返回一个新对象。
     */
    static extendObject(targetObject: Object, sourceObject: Object): Object;
    static extendObjects<T = Object>(targetObject: T, ...sources: any[]): T;
    /**
     * 把一个值转为px或%
     * @param value
     * @returns string
     */
    static getCssValue(value: string | number): string;
    /**
     *
     * @param element
     * @param selector 支持'.className' '#id' '[attr]' 'tagName'
     * @returns {HTMLElement}
     */
    static getParentNodeBySelector(element: HTMLElement, selector: string): HTMLElement;
    /**
     * 获取浏览器的语言，例如 `"zh"`
     *
     * @returns string
     */
    static getBrowserLang(): string;
    /**
     * 获取浏览器的语言，例如 `"zh-CN"`
     *
     * @returns string
     */
    static getBrowserCultureLang(): string;
    /**
     * 安全的调用一个函数，并返回该函数的返回值。如果该函数执行失败，可以在控制台给出实际的堆栈以协助排查问题
     *
     * @param context 执行函数的上下文
     * @param {Function} callback 待执行的回调函数
     * @param {any[]} args 传递给回调函数的参数列表
     * @returns {any} 返回该函数的返回值
     */
    static safeInvokeCallback(context: any, callback: Function, args?: any[]): any;
    /**
     * 可靠的判断一个值是否有效，输入 `""` 和 `0` 均返回true，只有`null`或者`undefined`才会返回false
     *
     * @param value 待测验的值
     * @returns {boolean}
     */
    static isDefined(value: any): boolean;
    /**
     * 参考 `isDefined`
     *
     * @param value
     * @returns {boolean}
     */
    static isUndefined(value: any): boolean;
    /**
     * 将url中的参数解析为一个对象
     *
     * @param {string} rawParam 格式为`var1=value1&var2=value2`
     * @returns {Object} 返回类似`{var1: "value1", var2: "value2"}`的对象
     */
    static parseUrlParam(rawParam: string): Object;
    /**
     * 是浏览器内置uri解码`decodeURI()`函数的火力增强版，可以解码任何uri
     *
     * @param {string} uri
     * @returns {string}
     */
    static superDecodeURI(uri: string): string;
    /**
     * 判断浏览器是否为IE
     */
    static isIE(): boolean;
    static getBrowserType(): string;
    static toTrackByFunction(trackBy: string | string[]): (index: number, item: any) => any;
}
export declare type CallbackRemoval = () => void;
