import { RouteComponentProps } from 'react-router-dom' export interface IRouteParams { organizationId?: string projectId?: string portalId?: string dashboardId?: string widgetId?: string displayId?: string slideId?: string viewId?: string scheduleId?: string userId?: string } export type RouteComponentWithParams = RouteComponentProps export type IValue = T[U] export type Diff = Omit< T, Extract > export type Compute = T extends () => void ? T : { [U in keyof T]: T[U] } export type Merge = Compute< T & Omit > export type DeepPartial = { [U in keyof T]?: T[U] extends object ? DeepPartial : T[U] } export type OverWrite< T extends object, U extends object, I = Diff & Intersection > = Pick export type Intersection = Pick< T, Extract & Extract > export type RequireAtLeastOne = Pick< T, Exclude > & { [K in Keys]-?: Required> & Partial>> }[Keys] export interface IReduxActionStruct { type?: string, payload: T }