1 |
|
2 |
|
3 |
|
4 | import { Contravariant2 } from 'fp-ts/es6/Contravariant';
|
5 | import { Category2 } from 'fp-ts/es6/Category';
|
6 |
|
7 |
|
8 |
|
9 | export interface Encoder<O, A> {
|
10 | readonly encode: (a: A) => O;
|
11 | }
|
12 |
|
13 |
|
14 |
|
15 | export declare type TypeOf<E> = E extends Encoder<any, infer A> ? A : never;
|
16 |
|
17 |
|
18 |
|
19 | export declare type OutputOf<E> = E extends Encoder<infer O, any> ? O : never;
|
20 |
|
21 |
|
22 |
|
23 | export declare function id<A>(): Encoder<A, A>;
|
24 |
|
25 |
|
26 |
|
27 | export declare function nullable<O, A>(or: Encoder<O, A>): Encoder<null | O, null | A>;
|
28 |
|
29 |
|
30 |
|
31 | export declare function type<P extends Record<string, Encoder<any, any>>>(properties: P): Encoder<{
|
32 | [K in keyof P]: OutputOf<P[K]>;
|
33 | }, {
|
34 | [K in keyof P]: TypeOf<P[K]>;
|
35 | }>;
|
36 |
|
37 |
|
38 |
|
39 | export declare function partial<P extends Record<string, Encoder<any, any>>>(properties: P): Encoder<Partial<{
|
40 | [K in keyof P]: OutputOf<P[K]>;
|
41 | }>, Partial<{
|
42 | [K in keyof P]: TypeOf<P[K]>;
|
43 | }>>;
|
44 |
|
45 |
|
46 |
|
47 | export declare function record<O, A>(codomain: Encoder<O, A>): Encoder<Record<string, O>, Record<string, A>>;
|
48 |
|
49 |
|
50 |
|
51 | export declare function array<O, A>(items: Encoder<O, A>): Encoder<Array<O>, Array<A>>;
|
52 |
|
53 |
|
54 |
|
55 | export declare function tuple<C extends ReadonlyArray<Encoder<any, any>>>(...components: C): Encoder<{
|
56 | [K in keyof C]: OutputOf<C[K]>;
|
57 | }, {
|
58 | [K in keyof C]: TypeOf<C[K]>;
|
59 | }>;
|
60 |
|
61 |
|
62 |
|
63 | export declare function intersection<O, A, P, B>(left: Encoder<O, A>, right: Encoder<P, B>): Encoder<O & P, A & B>;
|
64 |
|
65 |
|
66 |
|
67 | export declare function sum<T extends string>(tag: T): <M extends Record<string, Encoder<any, any>>>(members: M) => Encoder<OutputOf<M[keyof M]>, TypeOf<M[keyof M]>>;
|
68 |
|
69 |
|
70 |
|
71 | export declare function lazy<O, A>(f: () => Encoder<O, A>): Encoder<O, A>;
|
72 |
|
73 |
|
74 |
|
75 | export declare const contramap: <A, B>(f: (b: B) => A) => <E>(fa: Encoder<E, A>) => Encoder<E, B>;
|
76 |
|
77 |
|
78 |
|
79 | export declare const compose: <E, A>(ea: Encoder<E, A>) => <B>(ab: Encoder<A, B>) => Encoder<E, B>;
|
80 |
|
81 |
|
82 |
|
83 | export declare const URI = "io-ts/Encoder";
|
84 |
|
85 |
|
86 |
|
87 | export declare type URI = typeof URI;
|
88 | declare module 'fp-ts/es6/HKT' {
|
89 | interface URItoKind2<E, A> {
|
90 | readonly [URI]: Encoder<E, A>;
|
91 | }
|
92 | }
|
93 |
|
94 |
|
95 |
|
96 | export declare const contravariantEncoder: Contravariant2<URI>;
|
97 |
|
98 |
|
99 |
|
100 | export declare const categoryEncoder: Category2<URI>;
|