export declare type Value = boolean | number | string; export declare type Shape = Record; interface ComplexField { item?: 'boolean' | 'integer' | 'moment' | 'number' | 'object' | 'string' | 'timestamp'; shape?: Fieldset; type: 'object'; } interface ValueField { optional?: true | T; } interface BooleanField { type: 'boolean'; } interface IntegerField extends ValueField { type: 'integer' | 'timestamp'; } interface NumericField extends ValueField { type: 'integer' | 'number' | 'timestamp'; } interface StringField extends ValueField { type: 'moment' | 'string'; } declare type FieldOf = T extends Boolean ? BooleanField : T extends BigInt ? IntegerField : T extends Number ? NumericField : T extends String ? StringField : ComplexField; export declare type ComplexShape = Record; export declare type Fieldset = { [K in keyof S]: FieldOf; }; export declare const simplify: >(fields: Fieldset) => Fieldset; export {};