import type { TypeLambda } from "@fp-ts/core/HKT"; import type * as applicative from "@fp-ts/core/typeclass/Applicative"; import * as chainable from "@fp-ts/core/typeclass/Chainable"; import * as covariant from "@fp-ts/core/typeclass/Covariant"; import type * as flatMap_ from "@fp-ts/core/typeclass/FlatMap"; import type * as foldable from "@fp-ts/core/typeclass/Foldable"; import * as invariant from "@fp-ts/core/typeclass/Invariant"; import type * as monad from "@fp-ts/core/typeclass/Monad"; import * as of_ from "@fp-ts/core/typeclass/Of"; import type * as pointed from "@fp-ts/core/typeclass/Pointed"; import type * as product_ from "@fp-ts/core/typeclass/Product"; import type * as semiAlternative from "@fp-ts/core/typeclass/SemiAlternative"; import type * as semiApplicative from "@fp-ts/core/typeclass/SemiApplicative"; import type * as semiCoproduct from "@fp-ts/core/typeclass/SemiCoproduct"; import type { Semigroup } from "@fp-ts/core/typeclass/Semigroup"; import * as semiProduct from "@fp-ts/core/typeclass/SemiProduct"; import type * as traversable from "@fp-ts/core/typeclass/Traversable"; /** * @category models * @since 1.0.0 */ export type Identity = A; /** * @category type lambdas * @since 1.0.0 */ export interface IdentityTypeLambda extends TypeLambda { readonly type: Identity; } /** * @category type lambdas * @since 1.0.0 */ export interface IdentityTypeLambdaFix extends TypeLambda { readonly type: Identity; } /** * @category instances * @since 1.0.0 */ export declare const Covariant: covariant.Covariant; /** * @category instances * @since 1.0.0 */ export declare const Invariant: invariant.Invariant; /** * @category instances * @since 1.0.0 */ export declare const Of: of_.Of; /** * @category instances * @since 1.0.0 */ export declare const Pointed: pointed.Pointed; /** * @category instances * @since 1.0.0 */ export declare const FlatMap: flatMap_.FlatMap; /** * @category instances * @since 1.0.0 */ export declare const Chainable: chainable.Chainable; /** * @category instances * @since 1.0.0 */ export declare const Monad: monad.Monad; /** * @category instances * @since 1.0.0 */ export declare const SemiProduct: semiProduct.SemiProduct; /** * @category instances * @since 1.0.0 */ export declare const Product: product_.Product; /** * @category instances * @since 1.0.0 */ export declare const SemiApplicative: semiApplicative.SemiApplicative; /** * @category instances * @since 1.0.0 */ export declare const Applicative: applicative.Applicative; /** * @category instances * @since 1.0.0 */ export declare const getSemiCoproduct: (S: Semigroup) => semiCoproduct.SemiCoproduct>; /** * @category instances * @since 1.0.0 */ export declare const getSemiAlternative: (S: Semigroup) => semiAlternative.SemiAlternative>; /** * @category instances * @since 1.0.0 */ export declare const Foldable: foldable.Foldable; /** * @category instances * @since 1.0.0 */ export declare const Traversable: traversable.Traversable; /** * @category do notation * @since 1.0.0 */ export declare const bindTo: { (name: N): (self: Identity) => Identity<{ [K in N]: A; }>; (self: Identity, name: N): Identity<{ [K in N]: A; }>; }; declare const let_: { (name: Exclude, f: (a: A) => B): (self: Identity) => Identity<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; (self: Identity, name: Exclude, f: (a: A) => B): Identity<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; }; export { /** * @category do notation * @since 1.0.0 */ let_ as let }; /** * @category do notation * @since 1.0.0 */ export declare const Do: Identity<{}>; /** * @category do notation * @since 1.0.0 */ export declare const bind: { (name: Exclude, f: (a: A) => Identity): (self: Identity) => Identity<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; (self: Identity, name: Exclude, f: (a: A) => Identity): Identity<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; }; /** * A variant of `bind` that sequentially ignores the scope. * * @category do notation * @since 1.0.0 */ export declare const andThenBind: { (name: Exclude, that: Identity): (self: Identity) => Identity<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; (self: Identity, name: Exclude, that: Identity): Identity<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }>; }; //# sourceMappingURL=Identity.d.ts.map