import type * as HKT from "@principia/prelude/HKT"; export interface Encoder { readonly encode: (a: A) => O; } export type OutputOf = E extends Encoder ? O : never; export type TypeOf = E extends Encoder ? A : never; export const URI = "Encoder"; export type URI = typeof URI; export type V = HKT.V<"E", "+">; declare module "@principia/prelude/HKT" { interface URItoKind { readonly [URI]: Encoder; } interface URItoKind2 { readonly [URI]: Encoder; } }