import { AtomicReference } from "@tsplus/stdlib/data/AtomicReference";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { Ref } from "@effect/core/io/Ref/definition";
import { Effect } from "@effect/core/io/Effect/definition";
import { _A, RefSym } from "@effect/core/io/Ref/definition";
export declare class UnsafeAPI {
readonly value: AtomicReference;
constructor(value: AtomicReference);
get get(): A;
getAndSet(a: A): A;
getAndUpdate(f: (a: A) => A): A;
getAndUpdateSome(pf: (a: A) => Maybe): A;
modify(f: (a: A) => readonly [B, A]): B;
modifySome(fallback: B, pf: (a: A) => Maybe): B;
set(a: A): void;
update(f: (a: A) => A): void;
updateAndGet(f: (a: A) => A): A;
updateSome(pf: (a: A) => Maybe): void;
updateSomeAndGet(pf: (a: A) => Maybe): A;
}
export declare class AtomicInternal implements Ref {
readonly unsafe: UnsafeAPI;
constructor(unsafe: UnsafeAPI);
get [_A](): (_: never) => A;
/**
* Internal Discriminator
*/
get [RefSym](): RefSym;
get get(): Effect;
modify(this: this, f: (a: A) => readonly [B, A]): Effect;
set(this: this, a: A): Effect;
getAndSet(this: this, a: A): Effect;
getAndUpdate(this: this, f: (a: A) => A): Effect;
getAndUpdateSome(this: this, pf: (a: A) => Maybe): Effect;
modifySome(this: this, fallback: B, pf: (a: A) => Maybe): Effect;
update(this: this, f: (a: A) => A): Effect;
updateAndGet(this: this, f: (a: A) => A): Effect;
updateSome(this: this, pf: (a: A) => Maybe): Effect;
updateSomeAndGet(this: this, pf: (a: A) => Maybe): Effect;
}
//# sourceMappingURL=AtomicInternal.d.ts.map