import { DisplayInfo } from "./displayInfo";
import { IElementInfo, ITypeInfoRegistry } from "./interfaces";
/**
 * Provides basic implementation of reflection elements.
 *
 * @export
 * @class ElementInfo
 */
export declare abstract class ElementInfo implements IElementInfo {
    /**
     * Gets the element name.
     *
     * @type {string}
     * @memberof IElementInfo
     */
    readonly name: string;
    /**
     * Gets the element full name.
     *
     * @type {string}
     * @memberof ElementInfo
     */
    readonly fullName: string;
    /**
     * Gets the localized display information.
     *
     * @memberof ElementInfo
     */
    readonly displayInfo?: DisplayInfo;
    /**
     * Creates an instance of ElementInfo.
     *
     * @param {string} name The element name.
     * @param {string} [fullName] Optional. The full name of the element.
     * @param {DisplayInfo} [displayInfo] Optional. The display information.
     * @param {ITypeInfoRegistry} [registry] The root type info registry.
     * @memberof ElementInfo
     */
    constructor({ name, fullName, displayInfo, registry, ...args }: {
        name: string;
        fullName?: string;
        displayInfo?: DisplayInfo;
        registry?: ITypeInfoRegistry;
        [key: string]: any;
    });
}
