import type { DataDomain } from './DataDomain.js';
export interface DomainElementSchema {
    /**
     * The kind of the domain element.
     */
    kind: string;
    /**
     * The unique key of the domain element.
     */
    key: string;
}
export declare abstract class DomainElement implements DomainElementSchema {
    #private;
    /**
     * A reference to the root DataDomain instance.
     */
    protected root: DataDomain;
    /**
     * The root DataDomain instance.
     */
    get domain(): DataDomain;
    abstract accessor kind: string;
    /**
     * The unique key of the domain element.
     */
    get key(): string;
    /**
     * @param root The root DataDomain instance.
     * @param key The unique key of the domain element.
     */
    constructor(root: DataDomain, key: string);
}
//# sourceMappingURL=DomainElement.d.ts.map