import type { Kind } from '../../kinds/index.js'; import type { Of } from '../of'; import type { TypeSkell } from '../../typeskell/index.js'; import { BiFunctor } from '../bifunctor'; export declare namespace BiFlatMap { type $biFlatMap = TypeSkell<'(a -> F b e ..x) (c -> F b e ..x) -> F a c ..y -> F b e ..xy', { F: F; }>; type $orElse = TypeSkell<'(a -> F _ b ..x) -> F _ a ..y -> F _ b ..xy ', { F: F; }>; } /** * BiFlatMap is a typeclass that defines a single operation, biFlatMap. * It is a flatMap operation that allows you to recover from an error. */ export interface BiFlatMap extends Of, BiFunctor { biFlatMap: BiFlatMap.$biFlatMap; } /** * orElse :: `BiFlatMap F => (e1 -> F a e2) -> F a e1 -> F a e2` * * @param biflatmap `BiFlatMap` * @returns `(e1 -> F a e2) -> F a e1 -> F a e2` */ export declare const orElse: (biFlatMap: BiFlatMap) => BiFlatMap.$orElse;