/** * @since 2.2.0 */ import { Kind, URIS, HKT } from 'fp-ts/es6/HKT'; /** * @since 2.2.0 */ export declare type Literal = string | number | boolean | null; /** * @since 2.2.3 */ export interface Schemable { readonly URI: S; readonly literal: >(...values: A) => HKT; readonly string: HKT; readonly number: HKT; readonly boolean: HKT; readonly nullable: (or: HKT) => HKT; readonly type: (properties: { [K in keyof A]: HKT; }) => HKT; readonly partial: (properties: { [K in keyof A]: HKT; }) => HKT>; readonly record: (codomain: HKT) => HKT>; readonly array: (items: HKT) => HKT>; readonly tuple: >(...components: { [K in keyof A]: HKT; }) => HKT; readonly intersection: (left: HKT, right: HKT) => HKT; readonly sum: (tag: T) => (members: { [K in keyof A]: HKT; }) => HKT; readonly lazy: (id: string, f: () => HKT) => HKT; } /** * @since 2.2.3 */ export interface Schemable1 { readonly URI: S; readonly literal: >(...values: A) => Kind; readonly string: Kind; readonly number: Kind; readonly boolean: Kind; readonly nullable: (or: Kind) => Kind; readonly type: (properties: { [K in keyof A]: Kind; }) => Kind; readonly partial: (properties: { [K in keyof A]: Kind; }) => Kind>; readonly record: (codomain: Kind) => Kind>; readonly array: (items: Kind) => Kind>; readonly tuple: >(...components: { [K in keyof A]: Kind; }) => Kind; readonly intersection: (left: Kind, right: Kind) => Kind; readonly sum: (tag: T) => (members: { [K in keyof A]: Kind; }) => Kind; readonly lazy: (id: string, f: () => Kind) => Kind; } /** * @since 2.2.3 */ export interface WithUnknownContainers { readonly UnknownArray: HKT>; readonly UnknownRecord: HKT>; } /** * @since 2.2.3 */ export interface WithUnknownContainers1 { readonly UnknownArray: Kind>; readonly UnknownRecord: Kind>; } /** * @since 2.2.3 */ export interface WithUnion { readonly union: >(...members: { [K in keyof A]: HKT; }) => HKT; } /** * @since 2.2.3 */ export interface WithUnion1 { readonly union: >(...members: { [K in keyof A]: Kind; }) => Kind; } /** * @since 2.2.3 */ export interface WithRefinement { readonly refinement: (from: HKT, refinement: (a: A) => a is B, expected: string) => HKT; } /** * @since 2.2.3 */ export interface WithRefinement1 { readonly refinement: (from: Kind, refinement: (a: A) => a is B, expected: string) => Kind; } /** * @since 2.2.0 */ export declare function memoize(f: (a: A) => B): (a: A) => B;