import type { Node as NodeInternal, NodeOps } from "@effect/core/stm/THub/definition/Node"; import type { TDequeue as TDequeueInternal } from "@effect/core/stm/THub/definition/TDequeue"; import { TDequeueOps } from "@effect/core/stm/THub/definition/TDequeue"; export declare const THubSym: unique symbol; export type THubSym = typeof THubSym; export declare const _A: unique symbol; export type _A = typeof _A; export declare namespace THub { type Node = NodeInternal; type Strategy = BackPressure | Dropping | Sliding; interface TDequeue extends TDequeueInternal { } } /** * A `THub` is a transactional message hub. Publishers can publish messages to * the hub and subscribers can subscribe to take messages from the hub. * * @tsplus type effect/core/stm/THub */ export interface THub { } /** * @tsplus type effect/core/stm/THub.Ops */ export interface THubOps { $: THubAspects; Node: NodeOps; TDequeue: TDequeueOps; } export declare const THub: THubOps; /** * @tsplus type effect/core/stm/THub.Aspects */ export interface THubAspects { } export interface BackPressure { _tag: "BackPressure"; } export interface Dropping { _tag: "Dropping"; } export interface Sliding { _tag: "Sliding"; } /** * A strategy that retries if the hub is at capacity. * @tsplus static effect/core/stm/THub.Ops BackPressure * @tsplus location "@effect/core/stm/THub/definition/THub" */ export declare const BackPressure: THub.Strategy; /** * A strategy that drops new messages if the hub is at capacity. * @tsplus static effect/core/stm/THub.Ops Dropping * @tsplus location "@effect/core/stm/THub/definition/THub" */ export declare const Dropping: THub.Strategy; /** * A strategy that drops old messages if the hub is at capacity. * @tsplus static effect/core/stm/THub.Ops Sliding * @tsplus location "@effect/core/stm/THub/definition/THub" */ export declare const Sliding: THub.Strategy; //# sourceMappingURL=THub.d.ts.map