import * as i0 from "@angular/core";
/** @ignore */
export declare enum BrowserName {
    Chrome = "Chrome",
    Edge = "Edge",
    Firefox = "Firefox",
    Opera = "Opera",
    Safari = "Safari"
}
/** @ignore */
export interface BrowserInfo {
    name(): string | undefined;
    version(): string | undefined;
    isChrome(): boolean;
    isEdge(): boolean;
    isFirefox(): boolean;
    isOpera(): boolean;
    isSafari(): boolean;
    mobileDevice: {
        isAndroid(): boolean;
        isBlackberry(): boolean;
        isIOS(): boolean;
        isOpera(): boolean;
        isAny(): boolean;
    };
}
/**
 * Service providing common utilities
 */
/**
 * @dynamic
 * @ignore
 */
export declare class UtilService {
    private document;
    private platformId;
    static getSvgFromString(s: string): DocumentFragment;
    static getEventPath(event: MouseEvent): EventTarget[];
    private nextUniqueId;
    private browserName?;
    isBrowser(): boolean;
    /**
     * Object for getting information about the browser
     */
    get browser(): BrowserInfo | undefined;
    constructor(document: Document, platformId: object);
    /**
     * Formats the target string in the same way as .NET's String.format
     * @param  target the target string
     * @param  params one or more numbers, booleans, or strings to insert
     *     into the target string at the specified location(s)
     * @returns the formatted string
     */
    formatString(target: string, ...params: Array<any>): string;
    private getBrowser;
    private getBrowserVersion;
    /**
     * nextUid, from angular.js.
     * A consistent way of creating unique IDs in angular. The ID is a sequence of alpha numeric
     * characters such as "012ABC". The reason why we are not using simply a number counter is that
     * the number string gets longer over time, and it can also overflow, where as the nextId
     * will grow much slower, it is a string, and it will never overflow.
     *

     */
    nextUid(): string;
    /**
     * Returns the approximate memory footprint (byte count) of the object specified

     */
    sizeof: (object: any) => number;
    private calculateSizeof;
    dateEquals(date1?: Date, date2?: Date): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<UtilService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UtilService>;
}
