import { Location, ModelElement, MetaInfo, VisitMode } from './modelElement.js';
import { ErrorBase } from './errorBase.js';

interface ModelElementBaseBuilder {
    id?: string;
    location?: Location;
}
declare class ModelElementBase implements ModelElement {
    _meta: MetaInfo;
    constructor(options?: ModelElementBaseBuilder);
    getId(): string;
    getTypeName(): string;
    toString(): string;
    identity(): unknown;
    sameConcept(b: ModelElement | null | undefined): boolean;
    equals(b: ModelElement): boolean;
    hashCodeElement(): number;
    hashCode(): number;
    visit(visitMode: VisitMode, action: (el: ModelElement) => void): void;
    toJson(): string;
    toEssential(): string;
    private visitNode;
    visitChildren(visitMode: VisitMode, action: (el: ModelElement) => void): void;
    validate(): ErrorBase[];
}

export { ModelElementBase, type ModelElementBaseBuilder };
