import { $, $type, Eval, HKT, Kind, Lazy, TyK, TyVar } from '@fp4ts/core'; import { Eq, Monoid } from '@fp4ts/cats-kernel'; import { Applicative } from '../applicative'; import { Bifunctor } from '../bifunctor'; import { EqK } from '../eq-k'; import { Monad } from '../monad'; import { MonadError } from '../monad-error'; import { MonoidK } from '../monoid-k'; import { SemigroupK } from '../semigroup-k'; import { Traversable } from '../traversable'; import { List } from './collections'; import { Option } from './option'; export type Either = _Either; export declare const Either: EitherObj; export declare const Left: (e: E) => Either; export declare const Right: (a: A) => Either; declare abstract class _Either { private __void; private _E; private _A; abstract readonly isEmpty: boolean; get nonEmpty(): boolean; get isLeft(): boolean; get isRight(): boolean; abstract getLeft: E; abstract get: A; get toOption(): Option; get toList(): List; get toArray(): A[]; get swapped(): Either; fold(onLeft: (e: E) => B1, onRight: (a: A) => B2): B1 | B2; map(f: (a: A) => B): Either; tap(f: (a: A) => unknown): Either; leftMap(f: (e: E) => E2): Either; bimap(f: (e: E) => E2, g: (a: A) => B): Either; orElse(this: Either, that: Lazy>): Either; '<|>'(this: Either, that: Lazy>): Either; orElseEval(this: Either, that: Eval>): Eval>; getOrElse(this: Either, defaultValue: Lazy): A; map2(this: Either, that: Either, f: (a: A, b: B) => C): Either; map2Eval(this: Either, that: Eval>, f: (a: A, b: B) => C): Eval>; flatMap(this: Either, f: (a: A) => Either): Either; leftFlatMap(this: Either, f: (e: E) => Either): Either; flatten(this: Either>): Either; foldMap(M: Monoid): (f: (a: A) => M) => M; foldMapK(F: MonoidK): (f: (a: A) => Kind) => Kind; foldLeft(z: B, f: (b: B, a: A) => B): B; foldRight(ez: Eval, f: (a: A, eb: Eval) => Eval): Eval; traverse(G: Applicative): (f: (a: A) => Kind) => Kind]>; equals(this: Either, that: Either, EE?: Eq, EA?: Eq): boolean; } interface EitherObj { (a: A): Either; pure(a: A): Either; rightUnit: Either; tailRecM_(a0: A, f: (a: A) => Either>): Either; Eq(EE: Eq, EA: Eq): Eq>; EqK(EE: Eq): EqK<$>; Bifunctor: Bifunctor; SemigroupK(): SemigroupK<$>; Monad(): Monad<$>; MonadError(): MonadError<$, E>; Traversable(): Traversable<$>; } interface _Either extends HKT { } /** * @category Type Constructor * @category Data */ export interface EitherF extends TyK<[unknown, unknown]> { [$type]: Either, TyVar>; } export {}; //# sourceMappingURL=either.d.ts.map