import { Cloneable } from "@harmoniclabs/cbor/dist/utils/Cloneable";
import { ToJson } from "../../utils/ToJson.js";
import { IRTerm } from "../IRTerm.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 IRForcedMetadata extends BaseIRMetadata {
}
export declare class IRForced implements Cloneable<IRForced>, IHash, IIRParent, ToJson {
    readonly meta: IRForcedMetadata;
    constructor(forced: IRTerm, _unsafeHash?: IRHash);
    private _forced;
    get forced(): IRTerm;
    set forced(newForced: IRTerm | undefined);
    private _hash;
    get hash(): IRHash;
    isHashPresent(): boolean;
    markHashAsInvalid(): void;
    private _parent;
    get parent(): IRParentTerm | undefined;
    set parent(newParent: IRParentTerm | undefined);
    static get kind(): IRNodeKind.Forced;
    get kind(): IRNodeKind.Forced;
    static get tag(): Uint8Array;
    clone(): IRForced;
    toJSON(): any;
    toJson(): any;
}
