import * as Effect from "effect/Effect";
import * as MutableRef from "effect/MutableRef";
import * as Option from "effect/Option";
import * as Scope from "effect/Scope";
export type State = {
readonly _tag: "Closed";
} | {
readonly _tag: "Acquiring";
readonly scope: Scope.CloseableScope;
} | {
readonly _tag: "Acquired";
readonly scope: Scope.CloseableScope;
readonly value: A;
};
export declare class ResourceRef {
readonly state: MutableRef.MutableRef>;
readonly acquire: (scope: Scope.Scope) => Effect.Effect;
static from: (parentScope: Scope.Scope, acquire: (scope: Scope.Scope) => Effect.Effect) => Effect.Effect, E_1, never>;
constructor(state: MutableRef.MutableRef>, acquire: (scope: Scope.Scope) => Effect.Effect);
latch: Effect.Latch;
unsafeGet(): Option.Option;
unsafeRebuild(): Effect.Effect;
await: Effect.Effect;
}
//# sourceMappingURL=resourceRef.d.ts.map