import { SubscriptionRef } from "@effect/core/stream/SubscriptionRef/definition";
import { Ref } from "@effect/core/io/Ref/definition";
import { Hub } from "@effect/core/io/Hub/definition";
import { TSemaphore } from "@effect/core/stm/TSemaphore/definition";
import { Stream } from "@effect/core/stream/Stream/definition";
import { Effect } from "@effect/core/io/Effect";
import { _A, RefSym, SynchronizedSym } from "@effect/core/io/Ref/definition";
import { SubscriptionRefSym } from "@effect/core/stream/SubscriptionRef/definition";
import type { Maybe } from "@tsplus/stdlib/data/Maybe";
export declare class SubscriptionRefInternal implements SubscriptionRef {
readonly ref: Ref;
readonly hub: Hub;
readonly semaphore: TSemaphore;
get [RefSym](): RefSym;
get [SynchronizedSym](): SynchronizedSym;
get [SubscriptionRefSym](): SubscriptionRefSym;
get [_A](): (_: never) => A;
constructor(ref: Ref, hub: Hub, semaphore: TSemaphore);
get changes(): Stream.UIO;
modifyEffect(this: this, f: (a: A) => Effect): Effect;
getAndUpdateEffect(this: this, f: (a: A) => Effect): Effect;
getAndUpdateSomeEffect(this: this, pf: (a: A) => Maybe>): Effect;
modifySomeEffect(this: this, fallback: B, pf: (a: A) => Maybe>): Effect;
updateEffect(this: this, f: (a: A) => Effect): Effect;
updateAndGetEffect(this: this, f: (a: A) => Effect): Effect;
updateSomeEffect(this: this, pf: (a: A) => Maybe>): Effect;
updateSomeAndGetEffect(this: this, pf: (a: A) => Maybe>): Effect;
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=SubscriptionRefInternal.d.ts.map