import { Eq, Semigroup } from '@fp4ts/cats-kernel';
import { Option } from '../option';
import { Either } from '../either';
import { Ior } from './algebra';
export declare const isLeft: (ior: Ior) => boolean;
export declare const isRight: (ior: Ior) => boolean;
export declare const isBoth: (ior: Ior) => boolean;
export declare const swapped: (ior: Ior) => Ior;
export declare const getLeft: (ior: Ior) => Option;
export declare const getRight: (ior: Ior) => Option;
export declare const getOnlyLeft: (ior: Ior) => Option;
export declare const getOnlyRight: (ior: Ior) => Option;
export declare const getOnlyLeftOrRight: (ior: Ior) => Option>;
export declare const getOnlyBoth: (ior: Ior) => Option<[A, B]>;
export declare const toOption: (ior: Ior) => Option;
export declare const toEither: (ior: Ior) => Either;
export declare const pad: (ior: Ior) => [Option, Option];
export declare const map: (g: (b: B) => D) => (ior: Ior) => Ior;
export declare const leftMap: (f: (a: A) => C) => (ior: Ior) => Ior;
export declare const bimap: (f: (a: A) => C, g: (b: B) => D) => (ior: Ior) => Ior;
export declare const flatMap: (S: Semigroup) => (f: (b: B) => Ior) => (ior: Ior) => Ior;
export declare const combine: (SA: Semigroup, SB: Semigroup) => (ior2: Ior) => (ior1: Ior) => Ior;
export declare const merge: (S: Semigroup) => (ior: Ior) => AA;
export declare const mergeWith: (f: (l: A, r: A) => A) => (ior: Ior) => A;
export declare const tailRecM: (S: Semigroup) => (s: S) => (f: (s: S) => Ior>) => Ior;
export declare const fold: (onLeft: (a: A) => C, onRight: (b: B) => C, onBoth: (a: A, b: B) => C) => (ior: Ior) => C;
export declare const map_: (ior: Ior, g: (b: B) => D) => Ior;
export declare const leftMap_: (ior: Ior, f: (a: A) => C) => Ior;
export declare const bimap_: (ior: Ior, f: (a: A) => C, g: (b: B) => D) => Ior;
export declare const flatMap_: (S: Semigroup) => (ior: Ior, f: (b: B) => Ior) => Ior;
export declare const combine_: (SA: Semigroup, SB: Semigroup) => (ior1: Ior, ior2: Ior) => Ior;
export declare const mergeWith_: (ior: Ior, f: (l: A, r: A) => A) => A;
export declare const tailRecM_: (S: Semigroup) => (s: S, f: (s: S) => Ior>) => Ior;
export declare const fold_: (ior: Ior, onLeft: (a: A) => C1, onRight: (b: B) => C2, onBoth: (a: A, b: B) => C3) => C1 | C2 | C3;
export declare const equals_: (EqA: Eq, EqB: Eq) => (lhs: Ior, rhs: Ior) => boolean;
//# sourceMappingURL=operators.d.ts.map