import { TRef } from "@effect/core/stm/TRef/definition";
import { AtomicReference } from "@tsplus/stdlib/data/AtomicReference";
import { HashMap } from "@tsplus/stdlib/collections/HashMap/definition";
import type { Todo } from "@effect/core/stm/STM/Journal";
import type { TxnId } from "@effect/core/stm/STM/TxnId";
import type { Versioned } from "@effect/core/stm/STM/Versioned";
import { _A, TRefSym } from "@effect/core/stm/TRef/definition";
export declare class TRefInternal<A> implements TRef<A> {
    versioned: Versioned<A>;
    readonly todo: AtomicReference<HashMap<TxnId, Todo>>;
    readonly [TRefSym]: TRefSym;
    readonly [_A]: () => A;
    constructor(versioned: Versioned<A>, todo: AtomicReference<HashMap<TxnId, Todo>>);
}
/**
 * @tsplus macro remove
 */
export declare function concreteTRef<A>(_: TRef<A>): asserts _ is TRefInternal<A>;
//# sourceMappingURL=TRefInternal.d.ts.map