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