/** * @since 2.0.0 */ import * as internal from "./internal/channel/upstreamPullRequest.js" import type * as Types from "./Types.js" /** * @since 2.0.0 * @category symbols */ export const UpstreamPullRequestTypeId: unique symbol = internal.UpstreamPullRequestTypeId /** * @since 2.0.0 * @category symbols */ export type UpstreamPullRequestTypeId = typeof UpstreamPullRequestTypeId /** * @since 2.0.0 * @category models */ export type UpstreamPullRequest = Pulled | NoUpstream /** * @since 2.0.0 */ export declare namespace UpstreamPullRequest { /** * @since 2.0.0 * @category models */ export interface Variance { readonly [UpstreamPullRequestTypeId]: { readonly _A: Types.Covariant } } } /** * @since 2.0.0 * @category models */ export interface Pulled extends UpstreamPullRequest.Variance { readonly _tag: "Pulled" readonly value: A } /** * @since 2.0.0 * @category models */ export interface NoUpstream extends UpstreamPullRequest.Variance { readonly _tag: "NoUpstream" readonly activeDownstreamCount: number } /** * @since 2.0.0 * @category constructors */ export const Pulled: (value: A) => UpstreamPullRequest = internal.Pulled /** * @since 2.0.0 * @category constructors */ export const NoUpstream: (activeDownstreamCount: number) => UpstreamPullRequest = internal.NoUpstream /** * Returns `true` if the specified value is an `UpstreamPullRequest`, `false` * otherwise. * * @since 2.0.0 * @category refinements */ export const isUpstreamPullRequest: (u: unknown) => u is UpstreamPullRequest = internal.isUpstreamPullRequest /** * Returns `true` if the specified `UpstreamPullRequest` is a `Pulled`, `false` * otherwise. * * @since 2.0.0 * @category refinements */ export const isPulled: (self: UpstreamPullRequest) => self is Pulled = internal.isPulled /** * Returns `true` if the specified `UpstreamPullRequest` is a `NoUpstream`, * `false` otherwise. * * @since 2.0.0 * @category refinements */ export const isNoUpstream: (self: UpstreamPullRequest) => self is NoUpstream = internal.isNoUpstream /** * Folds an `UpstreamPullRequest` into a value of type `Z`. * * @since 2.0.0 * @category folding */ export const match: { /** * Folds an `UpstreamPullRequest` into a value of type `Z`. * * @since 2.0.0 * @category folding */ ( options: { readonly onPulled: (value: A) => Z readonly onNoUpstream: (activeDownstreamCount: number) => Z } ): (self: UpstreamPullRequest) => Z /** * Folds an `UpstreamPullRequest` into a value of type `Z`. * * @since 2.0.0 * @category folding */ ( self: UpstreamPullRequest, options: { readonly onPulled: (value: A) => Z readonly onNoUpstream: (activeDownstreamCount: number) => Z } ): Z } = internal.match