import type { Kind, TypeClass, TypeLambda } from "effect/HKT"; import type { Covariant } from "./Covariant.js"; /** * @category type class * @since 0.24.0 */ export interface Bicovariant extends TypeClass { readonly bimap: { (f: (e: E1) => E2, g: (a: A) => B): (self: Kind) => Kind; (self: Kind, f: (e: E1) => E2, g: (a: A) => B): Kind; }; } /** * Returns a default ternary `bimap` composition. * * @since 0.24.0 */ export declare const bimapComposition: (CovariantF: Covariant, BicovariantG: Bicovariant) => (self: Kind>, f: (e: E1) => E2, g: (a: A) => B) => Kind>; /** * Returns a default `mapLeft` implementation. * * @since 0.24.0 */ export declare const mapLeft: (F: Bicovariant) => { (f: (e: E) => G): (self: Kind) => Kind; (self: Kind, f: (e: E) => G_1): Kind; }; /** * Returns a default `map` implementation. * * @since 0.24.0 */ export declare const map: (F: Bicovariant) => Covariant["map"]; //# sourceMappingURL=Bicovariant.d.ts.map