export type ColorScheme = 'light' | 'dark';

export interface ThemeColors {
  primary: string;
  primaryLight: string;
  primaryDark: string;

  secondary: string;
  secondaryLight: string;
  secondaryDark: string;

  background: string;
  surface: string;
  text: string;
  textLight: string;
  border: string;
  error: string;
  success: string;
  warning: string;

  chartPrimary: string;
  chartSecondary: string;
  chartTertiary: string;
  chartQuaternary: string;
}

export interface ThemeSpacing {
  xs: number;
  sm: number;
  md: number;
  lg: number;
  xl: number;
  xxl: number;
}

export interface ThemeFonts {
  regular: string;
  medium: string;
  bold: string;
  light: string;
  black: string;
}

export interface ThemeShadows {
  light: object;
  medium: object;
  heavy: object;
}

export interface ThemeTokens {
  colors: ThemeColors;
  spacing: ThemeSpacing;
  fonts: ThemeFonts;
  shadows: ThemeShadows;
}

export interface ThemeContextValue extends ThemeTokens {
  isDark: boolean;
  setScheme: (scheme: ColorScheme) => void;
}


