import type { FunctorMin } from './Functor'; import { Functor } from './Functor'; import * as HKT from './HKT'; export interface Profunctor extends Functor { readonly dimap_: DimapFn_; readonly dimap: DimapFn; readonly lmap_: LMapFn_; readonly lmap: LMapFn; } export declare type ProfunctorMin = FunctorMin & ({ readonly dimap_: DimapFn_; } | { readonly lmap_: LMapFn_; } | { readonly dimap_: DimapFn_; readonly lmap_: LMapFn_; }); export declare function Profunctor(F: ProfunctorMin): Profunctor; export interface DimapFn_ { (fa: HKT.Kind, f: (r: R) => U, g: (A: A) => B): HKT.Kind; } export interface DimapFn { (f: (r: R) => U, g: (a: A) => B): (fa: HKT.Kind) => HKT.Kind; } export interface LMapFn_ { (fa: HKT.Kind, f: (r: R) => U): HKT.Kind; } export interface LMapFn { (f: (r: R) => U): (fa: HKT.Kind) => HKT.Kind; } //# sourceMappingURL=Profunctor.d.ts.map