import { UIO } from './IO/fluent';
export interface Ref {
read: UIO;
write: (a: A) => UIO;
modify: (f: (a: A) => [B, A]) => UIO;
update: (f: (a: A) => A) => UIO;
update_: (f: (a: A) => A) => UIO;
}
export declare class IORef implements Ref {
private value;
static make: (a: A_1) => UIO>;
private constructor();
read: UIO;
write: (a: A) => UIO;
modify: (f: (a: A) => [B, A]) => UIO;
update: (f: (a: A) => A) => UIO;
update_: (f: (a: A) => A) => UIO;
}