import type {StyleProp, TextStyle, ViewStyle} from 'react-native'

export type ThemeName = 'light' | 'dark'

export type ViewStyleProp = StyleProp<ViewStyle>
export type TextStyleProp = StyleProp<TextStyle>

export type Palette = {
  white: string
  black: string
  primary_25: string
  primary_50: string
  primary_100: string
  primary_200: string
  primary_300: string
  primary_400: string
  primary_500: string
  primary_600: string
  primary_700: string
  primary_800: string
  primary_900: string
  primary_950: string
  primary_975: string
  negative_25: string
  negative_50: string
  negative_100: string
  negative_200: string
  negative_300: string
  negative_400: string
  negative_500: string
  negative_600: string
  negative_700: string
  negative_800: string
  negative_900: string
  negative_950: string
  negative_975: string
  positive_25: string
  positive_50: string
  positive_100: string
  positive_200: string
  positive_300: string
  positive_400: string
  positive_500: string
  positive_600: string
  positive_700: string
  positive_800: string
  positive_900: string
  positive_950: string
  positive_975: string
  contrast_25: string
  contrast_50: string
  contrast_100: string
  contrast_200: string
  contrast_300: string
  contrast_400: string
  contrast_500: string
  contrast_600: string
  contrast_700: string
  contrast_800: string
  contrast_900: string
  contrast_950: string
  contrast_975: string
  bg: string
  bg_hard: string
}

export type ThemeAtoms = {
  bg: ViewStyle
  bg_hard: ViewStyle
  bg_contrast_25: ViewStyle
  bg_contrast_50: ViewStyle
  bg_contrast_100: ViewStyle
  bg_contrast_200: ViewStyle
  bg_contrast_300: ViewStyle
  bg_contrast_400: ViewStyle
  bg_contrast_500: ViewStyle
  bg_contrast_600: ViewStyle
  bg_contrast_700: ViewStyle
  bg_contrast_800: ViewStyle
  bg_contrast_900: ViewStyle
  bg_contrast_950: ViewStyle
  bg_contrast_975: ViewStyle
  border_contrast_low: ViewStyle
  border_contrast_medium: ViewStyle
  border_contrast_high: ViewStyle
  text: TextStyle
  text_contrast_low: TextStyle
  text_contrast_medium: TextStyle
  text_contrast_high: TextStyle
  text_inverted: TextStyle
}

export type Theme = {
  name: ThemeName
  palette: Palette
  atoms: ThemeAtoms
}
