UNPKG

veffect

Version:

powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha

46 lines (41 loc) 829 B
/** * @since 2.0.0 */ import type * as Types from "./Types.js" /** * @since 2.0.0 */ export declare const URI: unique symbol /** * @since 2.0.0 */ export interface TypeClass<F extends TypeLambda> { readonly [URI]?: F } /** * @since 2.0.0 */ export interface TypeLambda { readonly In: unknown readonly Out2: unknown readonly Out1: unknown readonly Target: unknown } /** * @since 2.0.0 */ export type Kind<F extends TypeLambda, In, Out2, Out1, Target> = F extends { readonly type: unknown } ? (F & { readonly In: In readonly Out2: Out2 readonly Out1: Out1 readonly Target: Target })["type"] : { readonly F: F readonly In: Types.Contravariant<In> readonly Out2: Types.Covariant<Out2> readonly Out1: Types.Covariant<Out1> readonly Target: Types.Invariant<Target> }