import { InnerValue, ResolvableValueLevelAlias, UnresolvableValueLevelAlias, } from '@specifyapp/specify-design-token-format'; import type { CssResolvableAliasStrategy, CssUnresolvableAliasStrategy } from '../css/index.js'; export function unwrapInnerValue< Value extends InnerValue, Return = Value extends InnerValue ? Exclude : never, UnresolvableReturn = undefined, >( innerValue: Value, aliasStrategy: CssResolvableAliasStrategy, unresolvableAliasStrategy: CssUnresolvableAliasStrategy, ): Return { return innerValue .mapResolvableValueLevelAlias(aliasStrategy) .mapUnresolvableValueLevelAlias(alias => unresolvableAliasStrategy(innerValue.tokenState, alias), ) .unwrap() as Return; }