import { Branded, Mixed, Type } from 'io-ts'; import { Ord } from 'fp-ts/lib/Ord'; import { Either } from 'fp-ts/lib/Either'; export declare const reportIfFailed: (validation: Either) => Either; export interface Codec extends Type { } export interface IntegerBrand { readonly Integer: unique symbol; } export declare type Integer = Branded; export declare const integer: Codec; export interface NonNegativeBrand { readonly NonNegative: unique symbol; } export declare type NonNegative = Branded; export declare const nonNegative: Codec; export interface PositiveBrand { readonly Positive: unique symbol; } export declare type Positive = Branded; export declare const positive: Codec; export declare type Natural = NonNegative & Integer; export declare const natural: Codec; export interface NonEmptySetBrand { readonly NonEmptySet: unique symbol; } export declare type NonEmptySet = Branded, NonEmptySetBrand>; export declare const nonEmptySetFromArray: (codec: C, ord: Ord) => Type, NonEmptySetBrand>, C["_O"][], unknown>; export declare type JSONPrimitive = string | number | boolean | null; export declare const JSONPrimitiveCodec: Codec; export interface FractionBrand { readonly Fraction: unique symbol; } export declare type Fraction = Branded; export declare const fraction: import("io-ts").BrandC; export declare const fractionFromPercentage: (a: Branded) => Either>; export interface PercentageBrand { readonly Percentage: unique symbol; } export declare type Percentage = Branded; export declare const percentage: import("io-ts").BrandC; export declare const percentageFromFraction: (a: Branded) => Either>; export declare const mapper: (decoded: A, encoded: O, name?: string) => Type;