export interface IMapping { context: unknown; input: unknown; output: unknown; } /** Default inference mapping. */ export interface Identity extends IMapping { output: this['input']; } /** Maps the given argument `T` as the mapping output */ export interface As extends IMapping { output: T; } /** Base type Parser implemented by all other parsers */ export interface IParser { type: string; mapping: Mapping; }