import { MutableHashSet } from "@tsplus/stdlib/collections/mutable/MutableHashSet/definition";
import { MutableQueue } from "@tsplus/stdlib/collections/mutable/MutableQueue/definition";
import { Deferred } from "@effect/core/io/Deferred/definition";
import { Dequeue } from "@effect/core/io/Queue/definition/common";
import { AtomicBoolean } from "@tsplus/stdlib/data/AtomicBoolean";
import { EmptyMutableQueue } from "@tsplus/stdlib/collections/mutable/MutableQueue";
import { Effect } from "@effect/core/io/Effect/definition";
import type { AtomicHub } from "@effect/core/io/Hub/operations/_internal/AtomicHub";
import type { Subscription } from "@effect/core/io/Hub/operations/_internal/Subscription";
import type { Strategy } from "@effect/core/io/Hub/operations/strategy";
/**
* Creates a subscription with the specified strategy.
*/
export declare function makeSubscription(hub: AtomicHub, subscribers: MutableHashSet, MutableQueue>]>, strategy: Strategy): Effect>;
/**
* Unsafely creates a subscription with the specified strategy.
*/
export declare function unsafeMakeSubscription(hub: AtomicHub, subscribers: MutableHashSet, MutableQueue>]>, subscription: Subscription, pollers: MutableQueue>, shutdownHook: Deferred, shutdownFlag: AtomicBoolean, strategy: Strategy): Dequeue;
//# sourceMappingURL=makeSubscription.d.ts.map