import type { Either } from 'fp-ts/lib/Either'; import type { UnionToIntersection } from './core'; /** * @since 0.0.1 */ export declare const mapRecord: (d: Dic, f: (v: Dic[keyof Dic]) => B) => { [k_1 in keyof Dic]: B; }; /** * @since 0.0.1 */ export declare const projectField: >>(t: T) => (k: K) => { [q in keyof T]: T[q][K]; }; /** * @since 0.0.1 */ export declare const projectFieldWithEnv: Record>, R>(t: T, env: R) => >(k: K) => { [q in keyof T]: ReturnType[K]; }; /** * @since 0.0.1 */ export declare const merge: (...x: R) => UnionToIntersection; /** * @since 0.0.1 */ export declare const collect: (d: Record, f: (k: K, a: A) => B) => B[]; /** * @since 0.0.1 */ export declare const memo: any>(get: F) => typeof get; /** * @since 0.0.1 */ export declare type IsNever = 'X' | X extends 'X' ? Y : N; /** * @since 0.0.1 */ export declare type Includes = IsNever; /** * @since 0.0.1 * * Returns a function returning the index of the first guard matching a particular Objet * Caching the result under the given Symbol inside the Object */ export declare const getGuardId: (guards: ((x: unknown) => Either)[], sym: symbol) => (a: unknown) => number;