import { Cloneable } from "@harmoniclabs/cbor/dist/utils/Cloneable";
import { ToJson } from "../../utils/ToJson.js";
import { IHash } from "../interfaces/IHash.js";
import { IIRParent } from "../interfaces/IIRParent.js";
import { IRParentTerm } from "../utils/isIRParentTerm.js";
import { BaseIRMetadata } from "./BaseIRMetadata.js";
import { IRHash } from "../IRHash.js";
import { IRNodeKind } from "../IRNodeKind.js";
export interface IRErrorMetadata extends BaseIRMetadata {
}
export declare class IRError implements Cloneable<IRError>, IHash, IIRParent, ToJson {
    readonly meta: IRErrorMetadata;
    msg?: string;
    addInfos?: any;
    constructor(msg?: string, addInfos?: any);
    static get kind(): IRNodeKind.Error;
    get kind(): IRNodeKind.Error;
    static get tag(): Uint8Array;
    get hash(): IRHash;
    isHashPresent(): boolean;
    markHashAsInvalid(): void;
    private _parent;
    get parent(): IRParentTerm | undefined;
    set parent(newParent: IRParentTerm | undefined);
    clone(): IRError;
    toJSON(): {
        type: string;
    };
    toJson(): {
        type: string;
    };
}
