import type { ColorToken, HexColorToken } from '@helpwave/hightide-design/primitive-tokens' import type { Appearance, ColoringColorTokens, ColoringColorVariant, ColoringStyle, ColoringToken, ContainerLayoutToken, ControlElementLayoutToken, ElementLayoutTokens, InputColoringTokens, InsideControlElementLayoutToken, PressableColoringTokens, ButtonVariant } from '@helpwave/hightide-design/semantic-token-resolvers' import type { InputState } from '@helpwave/hightide-design/component-token-resolvers' import type { PressableState } from '@helpwave/hightide-design/component-token-resolvers' import type { ColorPairToken, ThemeLayoutSize, ThemeTypographySize, TintStrength } from '@helpwave/hightide-design/theme-tokens' export type BoundSemanticResolver = (parameter: TParameter) => TResult export type HightideThemeSemantics = { coloringColorVariant: BoundSemanticResolver<{ colorPair: ColorPairToken, variant: ColoringColorVariant, }, ColoringColorTokens>, coloringStyle: BoundSemanticResolver<{ coloring: ColoringColorTokens, style: ColoringStyle, }, ColoringToken>, pressableColoring: BoundSemanticResolver<{ coloring: ColoringToken, variant: ButtonVariant, state: PressableState, }, PressableColoringTokens>, pressableStateLayerTint: BoundSemanticResolver<{ states: PressableState, color: ColorToken, }, ColorToken>, inputColoring: BoundSemanticResolver<{ state: InputState, color?: ColorPairToken, }, InputColoringTokens>, controlLayout: BoundSemanticResolver<{ size: ThemeLayoutSize, }, ControlElementLayoutToken>, touchTargetSize: BoundSemanticResolver, containerLayout: BoundSemanticResolver<{ size: ThemeLayoutSize, }, ContainerLayoutToken>, insideControlLayout: BoundSemanticResolver<{ size: ThemeTypographySize, }, InsideControlElementLayoutToken>, tintedSurface: BoundSemanticResolver<{ tintColor: HexColorToken, tintStrength?: TintStrength, }, HexColorToken>, withAppearance: BoundSemanticResolver<{ colorPair: ColorPairToken, appearance: Appearance, }, HexColorToken>, asFaded: BoundSemanticResolver<{ colorPair: ColorPairToken, }, HexColorToken>, asDescription: BoundSemanticResolver<{ colorPair: ColorPairToken, }, HexColorToken>, } & ElementLayoutTokens