import { CallHKT, HKT } from './HKT';
export interface FunctorHKT extends HKT {
    output: Functor<this["input"]>;
}
export declare abstract class Functor<A> {
    abstract map<B, Fun extends FunctorHKT>(mapping: (value: A) => B): CallHKT<Fun, B>;
    replaceA<B>(value: B): Functor<B>;
}
