import { UnionToIntersection } from "@tsplus/stdlib/utilities/Types"; export declare const URI: unique symbol; /** * @tsplus type HKT */ export interface HKT { readonly R?: unknown; readonly E?: unknown; readonly A?: unknown; readonly type?: unknown; } /** * @tsplus type HKT/Ops */ export interface HKTOps { } export declare const HKT: HKTOps; export declare namespace HKT { interface Typeclass { readonly [URI]: F; } type Kind = F extends { readonly type: unknown; } ? (F & { readonly R: R; readonly E: E; readonly A: A; })["type"] : { readonly _F: F; readonly _R: (_: R) => void; readonly _E: () => E; readonly _A: () => A; }; type Infer = [K] extends [ Kind ] ? P extends "R" ? R : P extends "E" ? E : P extends "A" ? A : never : never; interface ComposeF extends HKT { readonly type: Kind>; } } /** * @tsplus static HKT/Ops intersect * @tsplus location "@tsplus/stdlib/prelude/HKT" */ export declare function intersect(...as: As): UnionToIntersection; /** * @tsplus static HKT/Ops instance * @tsplus macro identity * @tsplus location "@tsplus/stdlib/prelude/HKT" */ export declare function instance(a: Omit): A; //# sourceMappingURL=HKT.d.ts.map