import { ObjectContainer, Dependency } from '../../oc/ObjectContainer';
import { StringParameters, Utils } from '../../types';
export declare class ComponentUtils {
    /**
     * The application's dependency injector - the object container.
     */
    private _oc;
    /**
     * Map of registered utilities.
     */
    private _utilityClasses;
    /**
     * Map of instantiated utilities
     */
    private _utilities?;
    /**
     * Map of referrers to utilities
     */
    private _utilityReferrers;
    /**
     * Initializes the registry used for managing component utils.
     *
     * @param oc The application's dependency injector - the
     *        object container.
     */
    constructor(oc: ObjectContainer);
    /**
     * Registers single utility class or multiple classes in alias->class mapping.
     */
    register<T>(name: string | Dependency<T> | {
        [key: string]: string | Dependency<any>;
    }, componentUtilityClass?: Dependency<any>, referrer?: string): void;
    /**
     * Returns object containing all registered utilities
     */
    getUtils(): Utils;
    getReferrers(): StringParameters;
    _createUtilityInstance(alias: string, utilityClass: Dependency<any>): any;
}
//# sourceMappingURL=ComponentUtils.d.ts.map