import type { Kind, TypeLambda } from "@fp-ts/core/HKT"; import type { Covariant } from "@fp-ts/core/typeclass/Covariant"; import type { Semigroup } from "@fp-ts/core/typeclass/Semigroup"; import type { SemiProduct } from "@fp-ts/core/typeclass/SemiProduct"; /** * @category type class * @since 1.0.0 */ export interface SemiApplicative extends SemiProduct, Covariant { } /** * Lift a `Semigroup` into 'F', the inner values are combined using the provided `Semigroup`. * * @category lifting * @since 1.0.0 */ export declare const getSemigroup: (F: SemiApplicative) => (S: Semigroup) => Semigroup>; /** * Zips two `F` values together using a provided function, returning a new `F` of the result. * * @param self - The left-hand side of the zip operation * @param that - The right-hand side of the zip operation * @param f - The function used to combine the values of the two `Option`s * * @since 1.0.0 */ export declare const zipWith: (F: SemiApplicative) => { (that: Kind, f: (a: A, b: B) => C): (self: Kind) => Kind; (self: Kind, that: Kind, f: (a: A_1, b: B_1) => C_1): Kind; }; /** * @since 1.0.0 */ export declare const ap: (F: SemiApplicative) => { (that: Kind): (self: Kind B>) => Kind; (self: Kind B_1>, that: Kind): Kind; }; /** * @since 1.0.0 */ export declare const andThenDiscard: (F: SemiApplicative) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; }; /** * @since 1.0.0 */ export declare const andThen: (F: SemiApplicative) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; }; /** * Lifts a binary function into `F`. * * @param f - The function to lift. * * @category lifting * @since 1.0.0 */ export declare const lift2: (F: SemiApplicative) => (f: (a: A, b: B) => C) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; }; //# sourceMappingURL=SemiApplicative.d.ts.map