import { UnionToIntersection } from './helpers' import { IAnyMap } from './IAnyMap' export interface IIdentified { id: string | number | symbol } export type IWrappedValue = (W extends object[] ? UnionToIntersection : W extends object ? W : object) & { value: V } export type ITyped = { type: T } export type ITypedValue = IWrappedValue> export type IMeted = { meta: M } export type IMetedValue = IWrappedValue< V, IMeted > export type IMetaTyped = ITyped & IMeted export type IMetaTypedValue< V = any, T = any, M extends IAnyMap = IAnyMap, > = IWrappedValue> export type INormalValue< V = any, T = any, M extends IAnyMap = IAnyMap, > = IWrappedValue, IIdentified]>