/**
 * @tsplus type ets/Channel/UpstreamPullRequest
 */
export declare type UpstreamPullRequest<A> = Pulled<A> | NoUpstream;
export declare class Pulled<A> {
    readonly value: A;
    readonly _tag = "Pulled";
    constructor(value: A);
}
export declare class NoUpstream {
    readonly activeDownstreamCount: number;
    readonly _tag = "NoUpstream";
    constructor(activeDownstreamCount: number);
}
/**
 * @tsplus type ets/Channel/UpstreamPullRequest/Ops
 */
export interface UpstreamPullRequestOps {
}
export declare const UpstreamPullRequest: UpstreamPullRequestOps;
/**
 * @tsplus unify ets/Channel/UpstreamPullRequest
 */
export declare function unifyUpstreamPullRequest<X extends UpstreamPullRequest<any>>(self: X): UpstreamPullRequest<[X] extends [UpstreamPullRequest<infer AX>] ? AX : never>;
/**
 * @tsplus static ets/Channel/UpstreamPullRequest/Ops Pulled
 * @tsplus location "@effect/core/stream/Channel/UpstreamPullRequest"
 */
export declare function pulled<A>(value: A): UpstreamPullRequest<A>;
/**
 * @tsplus static ets/Channel/UpstreamPullRequest/Ops NoUpstream
 * @tsplus location "@effect/core/stream/Channel/UpstreamPullRequest"
 */
export declare function noUpstream(activeDownstreamCount: number): UpstreamPullRequest<never>;
//# sourceMappingURL=UpstreamPullRequest.d.ts.map