import React from 'react'; import { AnyObject } from './any-object'; export interface ExtendedMapperComponent extends AnyObject { component: React.ComponentType | React.FunctionComponent | React.ElementType; } interface ComponentMapper { [key: string]: React.ComponentType | React.FunctionComponent | React.ElementType | ExtendedMapperComponent; } export type ComponentPropsMap = { [K in keyof T]: T[K] extends React.ComponentType ? P : T[K] extends ExtendedMapperComponent ? T[K]['component'] extends React.ComponentType ? P : never : never; }; export default ComponentMapper;