import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition"; import { MutableQueue } from "@tsplus/stdlib/collections/mutable/MutableQueue/definition"; import { Deferred } from "@effect/core/io/Deferred/definition"; import { AtomicBoolean } from "@tsplus/stdlib/data/AtomicBoolean"; import { Effect } from "@effect/core/io/Effect/definition"; import { EmptyMutableQueue } from "@tsplus/stdlib/collections/mutable/MutableQueue"; /** * @tsplus type effect/core/io/Queue/Strategy */ export interface Strategy { readonly handleSurplus: (as: Chunk, queue: MutableQueue, takers: MutableQueue>, isShutdown: AtomicBoolean) => Effect; readonly unsafeOnQueueEmptySpace: (queue: MutableQueue, takers: MutableQueue>) => void; readonly surplusSize: number; readonly shutdown: Effect; } /** * @tsplus type effect/core/io/Queue/Strategy.Ops */ export interface StrategyOps { } export declare const Strategy: StrategyOps; export declare class DroppingStrategy implements Strategy { handleSurplus(_as: Chunk, _queue: MutableQueue, _takers: MutableQueue>, _isShutdown: AtomicBoolean): Effect; unsafeOnQueueEmptySpace(_queue: MutableQueue): void; get surplusSize(): number; get shutdown(): Effect; } export declare class SlidingStrategy implements Strategy { handleSurplus(as: Chunk, queue: MutableQueue, takers: MutableQueue>, _isShutdown: AtomicBoolean): Effect; unsafeOnQueueEmptySpace(_queue: MutableQueue): void; get surplusSize(): number; get shutdown(): Effect; private unsafeSlidingOffer; } /** * @tsplus static effect/core/io/Queue/Strategy.Ops Sliding * @tsplus location "@effect/core/io/Queue/operations/strategy" */ export declare function slidingStrategy(): SlidingStrategy; /** * @tsplus static effect/core/io/Queue/Strategy.Ops Dropping * @tsplus location "@effect/core/io/Queue/operations/strategy" */ export declare function dropppingStrategy(): DroppingStrategy; //# sourceMappingURL=strategy.d.ts.map