import { Effect } from "@effect/core/io/Effect/definition";
import { Hub } from "@effect/core/io/Hub/definition";
import { AtomicBoolean } from "@tsplus/stdlib/data/AtomicBoolean";
import { Deferred } from "@effect/core/io/Deferred/definition";
import { Scope } from "@effect/core/io/Scope/definition";
import { Collection } from "@tsplus/stdlib/collections/Collection/definition";
import { MutableHashSet } from "@tsplus/stdlib/collections/mutable/MutableHashSet/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
import { MutableQueue } from "@tsplus/stdlib/collections/mutable/MutableQueue/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 hub with the specified strategy.
 */
export declare function makeHub<A>(hub: AtomicHub<A>, strategy: Strategy<A>): Effect<never, never, Hub<A>>;
/**
 * Unsafely creates a hub with the specified strategy.
 */
export declare function unsafeMakeHub<A>(hub: AtomicHub<A>, subscribers: MutableHashSet<Tuple<[Subscription<A>, MutableQueue<Deferred<never, A>>]>>, scope: Scope.Closeable, shutdownHook: Deferred<never, void>, shutdownFlag: AtomicBoolean, strategy: Strategy<A>): Hub<A>;
//# sourceMappingURL=makeHub.d.ts.map