import * as Cause from "../../../Cause/core.js";
import * as O from "../../../Option/index.js";
import * as Tp from "../Tuple/index.js";
import type { ParSeq } from "./primitives.js";
/**
* Returns the first event in this collection of events. If multiple events
* occur in parallel and before any other events then any of these events
* may be returned.
*/
export declare function first(self: ParSeq): O.Option;
/**
* Folds over the events in this collection of events using the specified
* functions.
*/
export declare function fold_(self: ParSeq, emptyCase: B, singleCase: (a: A) => B, thenCase: (l: B, r: B) => B, bothCase: (l: B, r: B) => B): B;
/**
* Folds over the events in this collection of events using the specified
* functions.
*
* @ets_data_first fold_
*/
export declare function fold(emptyCase: B, singleCase: (a: A) => B, thenCase: (l: B, r: B) => B, bothCase: (l: B, r: B) => B): (self: ParSeq) => B;
/**
* Constructs a new collection of events for each event in this collection of
* events, collecting them back into a single collection of events.
*/
export declare function chain_(self: ParSeq, f: (a: A) => ParSeq): ParSeq;
/**
* Constructs a new collection of events for each event in this collection of
* events, collecting them back into a single collection of events.
*
* @ets_data_first chain_
*/
export declare function chain(f: (a: A) => ParSeq): (self: ParSeq) => ParSeq;
/**
* Flattens a collection of collections of events into a single collection
* of events.
*/
export declare function flatten(self: ParSeq>): ParSeq;
/**
* Converts a ParSeq to a Cause
*/
export declare function toCause(self: ParSeq): Cause.Cause;
/**
* Transforms the type of events in this collection of events with the
* specified function.
*/
export declare function map_(self: ParSeq, f: (a: A) => B): ParSeq;
/**
* Transforms the type of events in this collection of events with the
* specified function.
*
* @ets_data_first map_
*/
export declare function map(f: (a: A) => B): (self: ParSeq) => ParSeq;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events using the specified function.
*/
export declare function zipWith_(self: ParSeq, that: ParSeq, f: (a: A, b: B) => C): ParSeq;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events using the specified function.
*
* @ets_data_first zipWith_
*/
export declare function zipWith(that: ParSeq, f: (a: A, b: B) => C): (self: ParSeq) => ParSeq;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events, combining the elements into a
* tuple.
*/
export declare function zip_(self: ParSeq, that: ParSeq): ParSeq>;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events, combining the elements into a
* tuple.
*
* @ets_data_first zip_
*/
export declare function zip(that: ParSeq): (self: ParSeq) => ParSeq>;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events, keeping only the events from this
* collection.
*/
export declare function zipLeft_(self: ParSeq, that: ParSeq): ParSeq;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events, keeping only the events from this
* collection.
*
* @ets_data_first zipLeft_
*/
export declare function zipLeft(that: ParSeq): (self: ParSeq) => ParSeq;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events, keeping only the events from that
* collection.
*/
export declare function zipRight_(self: ParSeq, that: ParSeq): ParSeq;
/**
* Combines this collection of events with that collection of events to
* return the Cartesian product of events, keeping only the events from that
* collection.
*
* @ets_data_first zipRight_
*/
export declare function zipRight(that: ParSeq): (self: ParSeq) => ParSeq;
//# sourceMappingURL=core.d.ts.map