import * as HKT from './HKT'; export interface Bifunctor extends HKT.Base { readonly bimap_: BimapFn_; readonly bimap: BimapFn; readonly mapLeft_: MapLeftFn_; readonly mapLeft: MapLeftFn; readonly mapRight_: MapRightFn_; readonly mapRight: MapRightFn; } export declare type BifunctorMin = { readonly mapLeft_: MapLeftFn_; readonly mapRight_: MapRightFn_; } | { readonly bimap_: BimapFn_; } | { readonly mapLeft_: MapLeftFn_; readonly mapRight_: MapRightFn_; readonly bimap_: BimapFn_; }; export declare function Bifunctor(F: BifunctorMin): Bifunctor; export interface BimapFn { (f: (e: E) => H, g: (a: A) => B): (fea: HKT.Kind) => HKT.Kind; } export interface BimapFn_ { (fea: HKT.Kind, f: (e: E) => H, g: (a: A) => B): HKT.Kind; } export interface MapLeftFn { (f: (e: E) => H): (fea: HKT.Kind) => HKT.Kind; } export interface MapLeftFn_ { (fea: HKT.Kind, f: (e: E) => H): HKT.Kind; } export interface MapRightFn { (f: (a: A) => B): (fea: HKT.Kind) => HKT.Kind; } export interface MapRightFn_ { (fea: HKT.Kind, f: (a: A) => B): HKT.Kind; } //# sourceMappingURL=Bifunctor.d.ts.map