/** * @since 2.0.0 */ import { ApplicativeCompositionHKT2C, ApplicativeComposition12C, ApplicativeComposition22C } from './Applicative' import { Either, URI } from './Either' import { HKT, Kind, Kind2, URIS, URIS2 } from './HKT' import { Monad, Monad1, Monad2 } from './Monad' import { Semigroup } from './Semigroup' import { Lazy } from './function' /** * @since 2.0.0 */ export interface ValidationT extends HKT> {} /** * @since 2.0.0 */ export interface ValidationM extends ApplicativeCompositionHKT2C { readonly chain: (ma: ValidationT, f: (a: A) => ValidationT) => ValidationT readonly alt: (fa: ValidationT, that: Lazy>) => ValidationT } /** * @since 2.0.0 */ export declare type ValidationT1 = Kind> /** * @since 2.0.0 */ export interface ValidationM1 extends ApplicativeComposition12C { readonly chain: (ma: ValidationT1, f: (a: A) => ValidationT1) => ValidationT1 readonly alt: (fa: ValidationT1, that: Lazy>) => ValidationT1 } /** * @since 2.0.0 */ export declare type ValidationT2 = Kind2> /** * @since 2.0.0 */ export interface ValidationM2 extends ApplicativeComposition22C { readonly chain: ( ma: ValidationT2, f: (a: A) => ValidationT2 ) => ValidationT2 readonly alt: (fa: ValidationT2, that: Lazy>) => ValidationT2 } /** * @since 2.0.0 */ export declare function getValidationM(S: Semigroup, M: Monad2): ValidationM2 export declare function getValidationM(S: Semigroup, M: Monad1): ValidationM1 export declare function getValidationM(S: Semigroup, M: Monad): ValidationM