import type { BorderWidths } from './borderWidths'; import type { Colors } from './colors'; import type { ComponentTokens, DefaultComponentTokens, WebComponentTokens } from './components'; import type { Fonts } from './fonts'; import type { FontSizes } from './fontSizes'; import type { FontWeights } from './fontWeights'; import type { LineHeights } from './lineHeights'; import type { Opacities } from './opacities'; import type { OutlineOffsets } from './outlineOffsets'; import type { OutlineWidths } from './outlineWidths'; import type { Radii } from './radii'; import type { Shadows } from './shadows'; import type { Space } from './space'; import type { Time } from './time'; import type { Transforms } from './transforms'; import type { OutputVariantKey } from './types/designToken'; /** * Used for custom themes */ interface BaseTokens { borderWidths?: BorderWidths; colors?: Colors; fonts?: Fonts; fontSizes?: FontSizes; fontWeights?: FontWeights; lineHeights?: LineHeights; opacities?: Opacities; outlineOffsets?: OutlineOffsets; outlineWidths?: OutlineWidths; radii?: Radii; shadows?: Shadows; space?: Space; time?: Time; transforms?: Transforms; } export type Tokens = BaseTokens<'optional'> & { components?: ComponentTokens; }; export type DefaultTokens = Required> & { components: DefaultComponentTokens; }; /** * The fully setup theme tokens. It has the same shape as Tokens * but each token has added fields. */ export type WebTokens = Required> & { components: WebComponentTokens; }; type ReactNative = 'react-native'; type BaseReactNativeTokens = { colors?: Colors; borderWidths?: BorderWidths; fontSizes?: Omit, 'xxxs' | 'xxxxl'>; fontWeights?: FontWeights; opacities?: Opacities; radii?: Radii; space?: Omit, 'xxxs' | 'relative' | 'zero'>; time?: Time; }; export type ReactNativeTokens = Output extends 'required' | 'default' ? Required> : BaseReactNativeTokens; export declare const tokens: DefaultTokens; export declare const reactNativeTokens: ReactNativeTokens<'default'>; export {};