/**
* @since 1.0.0
*/
import type * as Option from "@effect/data/Option";
/**
* @since 1.0.0
* @category symbols
*/
export declare const UpstreamPullStrategyTypeId: unique symbol;
/**
* @since 1.0.0
* @category symbols
*/
export type UpstreamPullStrategyTypeId = typeof UpstreamPullStrategyTypeId;
/**
* @since 1.0.0
* @category models
*/
export type UpstreamPullStrategy = PullAfterNext | PullAfterAllEnqueued;
/**
* @since 1.0.0
*/
export declare namespace UpstreamPullStrategy {
/**
* @since 1.0.0
* @category models
*/
interface Variance {
readonly [UpstreamPullStrategyTypeId]: {
readonly _A: (_: never) => A;
};
}
}
/**
* @since 1.0.0
* @category models
*/
export interface PullAfterNext extends UpstreamPullStrategy.Variance {
readonly _tag: "PullAfterNext";
readonly emitSeparator: Option.Option;
}
/**
* @since 1.0.0
* @category models
*/
export interface PullAfterAllEnqueued extends UpstreamPullStrategy.Variance {
readonly _tag: "PullAfterAllEnqueued";
readonly emitSeparator: Option.Option;
}
/**
* @since 1.0.0
* @category constructors
*/
export declare const PullAfterNext: (emitSeparator: Option.Option) => UpstreamPullStrategy;
/**
* @since 1.0.0
* @category constructors
*/
export declare const PullAfterAllEnqueued: (emitSeparator: Option.Option) => UpstreamPullStrategy;
/**
* Returns `true` if the specified value is an `UpstreamPullStrategy`, `false`
* otherwise.
*
* @since 1.0.0
* @category refinements
*/
export declare const isUpstreamPullStrategy: (u: unknown) => u is UpstreamPullStrategy;
/**
* Returns `true` if the specified `UpstreamPullStrategy` is a `PullAfterNext`,
* `false` otherwise.
*
* @since 1.0.0
* @category refinements
*/
export declare const isPullAfterNext: (self: UpstreamPullStrategy) => self is PullAfterNext;
/**
* Returns `true` if the specified `UpstreamPullStrategy` is a
* `PullAfterAllEnqueued`, `false` otherwise.
*
* @since 1.0.0
* @category refinements
*/
export declare const isPullAfterAllEnqueued: (self: UpstreamPullStrategy) => self is PullAfterAllEnqueued;
/**
* Folds an `UpstreamPullStrategy` into a value of type `Z`.
*
* @since 1.0.0
* @category folding
*/
export declare const match: {
(options: {
readonly onNext: (emitSeparator: Option.Option) => Z;
readonly onAllEnqueued: (emitSeparator: Option.Option) => Z;
}): (self: UpstreamPullStrategy) => Z;
(self: UpstreamPullStrategy, options: {
readonly onNext: (emitSeparator: Option.Option) => Z;
readonly onAllEnqueued: (emitSeparator: Option.Option) => Z;
}): Z;
};
//# sourceMappingURL=UpstreamPullStrategy.d.ts.map