import { Collection } from "@tsplus/stdlib/collections/Collection/definition";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import type { AtomicHub } from "@effect/core/io/Hub/operations/_internal/AtomicHub";
import type { Subscription } from "@effect/core/io/Hub/operations/_internal/Subscription";
declare class Node {
value: A | null;
subscribers: number;
next: Node | null;
constructor(value: A | null, subscribers: number, next: Node | null);
}
export declare class UnboundedHub implements AtomicHub {
publisherHead: Node;
publisherIndex: number;
publisherTail: Node;
subscribersIndex: number;
readonly capacity: number;
constructor();
get isEmpty(): boolean;
get isFull(): boolean;
publish(a: A): boolean;
publishAll(as: Collection): Chunk;
get size(): number;
slide(): void;
subscribe(): Subscription;
}
export {};
//# sourceMappingURL=UnboundedHub.d.ts.map