import type { Option } from "../../Option";
import * as T from "../Task/_core";
import type { Atomic } from "./model";
export declare const getAndSet: (a: A) => (self: Atomic) => T.IO;
export declare const getAndUpdate: (f: (a: A) => A) => (self: Atomic) => T.IO;
export declare const getAndUpdateSome: (f: (a: A) => Option) => (self: Atomic) => T.IO;
export declare const modify: (f: (a: A) => readonly [B, A]) => (self: Atomic) => T.IO;
export declare const modifySome: (
def: B
) => (f: (a: A) => Option) => (self: Atomic) => T.IO;
export declare const update: (f: (a: A) => A) => (self: Atomic) => T.IO;
export declare const updateAndGet: (f: (a: A) => A) => (self: Atomic) => T.IO;
export declare const updateSome: (f: (a: A) => Option) => (self: Atomic) => T.IO;
export declare const updateSomeAndGet: (f: (a: A) => Option) => (self: Atomic) => T.IO;
export declare const unsafeUpdate: (f: (a: A) => A) => (self: Atomic) => void;
//# sourceMappingURL=atomic.d.ts.map