import { Equals } from "@tsplus/stdlib/structure/Equals"; import { Hash } from "@tsplus/stdlib/structure/Hash"; import { Eval } from "@tsplus/stdlib/io/Eval/definition"; import { List } from "@tsplus/stdlib/collections/List/definition"; import { HashSet } from "@tsplus/stdlib/collections/HashSet/definition"; export declare const ParSeqSym: unique symbol; export type ParSeqSym = typeof ParSeqSym; export declare const _A: unique symbol; export type _A = typeof _A; /** * `ParSeq` is a data type that represents some notion of "events" that can * take place in parallel or in sequence. For example, a `ParSeq` * parameterized on some error type could be used to model the potentially * multiple ways that an application can fail. On the other hand, a `ParSeq` * parameterized on some request type could be used to model a collection of * requests to external data sources, some of which could be executed in * parallel and some of which must be executed sequentially. * * @tsplus type ParSeq */ export type ParSeq = Empty | Single | Then | Both; /** * @tsplus type ParSeq.Ops */ export interface ParSeqOps { $: ParSeqAspects; } export declare const ParSeq: ParSeqOps; /** * @tsplus type ParSeq.Aspects */ export interface ParSeqAspects { } /** * @tsplus type ParSeq/Empty */ export declare class Empty implements Equals { readonly _tag = "Empty"; readonly [ParSeqSym]: ParSeqSym; readonly [_A]: () => never; [Equals.sym](that: unknown): boolean; [Hash.sym](): number; equalsSafe(that: ParSeq): Eval; } /** * @tsplus type ParSeq/Single */ export declare class Single implements Equals { readonly a: A; readonly _tag = "Single"; readonly [ParSeqSym]: ParSeqSym; readonly [_A]: () => A; constructor(a: A); [Equals.sym](that: unknown): boolean; [Hash.sym](): number; equalsSafe(that: ParSeq): Eval; } /** * @tsplus type ParSeq/Then */ export declare class Then implements Equals { readonly left: ParSeq; readonly right: ParSeq; readonly _tag = "Then"; readonly [ParSeqSym]: ParSeqSym; readonly [_A]: () => A; constructor(left: ParSeq, right: ParSeq); [Equals.sym](that: unknown): boolean; [Hash.sym](): number; equalsSafe(that: ParSeq): Eval; private eq; } /** * @tsplus type ParSeq/Both */ export declare class Both implements Equals { readonly left: ParSeq; readonly right: ParSeq; readonly _tag = "Both"; readonly [ParSeqSym]: ParSeqSym; readonly [_A]: () => A; constructor(left: ParSeq, right: ParSeq); [Equals.sym](that: unknown): boolean; [Hash.sym](): number; equalsSafe(that: ParSeq): Eval; private eq; } /** * Empty collection of events * @tsplus static ParSeq.Ops empty * @tsplus location "@tsplus/stdlib/collections/ParSeq/definition" */ export declare function empty(): ParSeq; /** * Constructs a new collection of events that contains the specified event. * @tsplus static ParSeq.Ops single * @tsplus location "@tsplus/stdlib/collections/ParSeq/definition" */ export declare function single(a: A): ParSeq; /** * Combines this collection of events with that collection of events to * return a new collection of events that represents this collection of * events in parallel with that collection of events. * @tsplus static ParSeq.Ops combinePar * @tsplus location "@tsplus/stdlib/collections/ParSeq/definition" */ export declare function combinePar_(left: ParSeq, right: ParSeq): ParSeq; /** * Combines this collection of events with that collection of events to * return a new collection of events that represents this collection of * events in parallel with that collection of events. * * @tsplus static ParSeq.Aspects combinePar */ export declare const combinePar: (right: ParSeq) => (left: ParSeq) => ParSeq; /** * Combines this collection of events with that collection of events to * return a new collection of events that represents this collection of * events followed by that collection of events. * @tsplus static ParSeq.Ops combineSeq * @tsplus location "@tsplus/stdlib/collections/ParSeq/definition" */ export declare function combineSeq_(left: ParSeq, right: ParSeq): ParSeq; /** * Combines this collection of events with that collection of events to * return a new collection of events that represents this collection of * events followed by that collection of events. * * @tsplus static ParSeq.Aspects combineSeq */ export declare const combineSeq: (right: ParSeq) => (left: ParSeq) => ParSeq; /** * @tsplus static ParSeq.Ops isParSeq * @tsplus location "@tsplus/stdlib/collections/ParSeq/definition" */ export declare function isParSeq(u: unknown): u is ParSeq; /** * Checks if the ParSeq is empty. * @tsplus getter ParSeq isEmpty * @tsplus location "@tsplus/stdlib/collections/ParSeq/definition" */ export declare function isEmpty(self: ParSeq): boolean; //# sourceMappingURL=definition.d.ts.map