export interface ColorScale {
  50: string;
  100: string;
  200: string;
  300: string;
  400: string;
  500: string;
  600: string;
  700: string;
  800: string;
  900: string;
}

export interface StatusColorConfig {
  primary: string;
  light: string;
  dark: string;
}

export interface BaseColors {
  primary: ColorScale;
  secondary: ColorScale;
  success: ColorScale;
  warning: ColorScale;
  error: ColorScale;
  info: ColorScale;
  neutral: ColorScale;
}

export interface BakeryColors {
  [key: string]: string;
}

export interface StatusColors {
  pending: StatusColorConfig;
  inProgress: StatusColorConfig;
  completed: StatusColorConfig;
  cancelled: StatusColorConfig;
  normal: StatusColorConfig;
  low: StatusColorConfig;
  out: StatusColorConfig;
  expired: StatusColorConfig;
  approved: StatusColorConfig;
  inTransit: StatusColorConfig;
  delivered: StatusColorConfig;
  bread: StatusColorConfig;
  pastry: StatusColorConfig;
  cake: StatusColorConfig;
  cookie: StatusColorConfig;
  other: StatusColorConfig;
}

export interface ChartColors {
  [key: string]: string;
}

export interface ThemeColors {
  bg: {
    primary: string;
    secondary: string;
    tertiary: string;
    quaternary: string;
    overlay: string;
    modalBackdrop: string;
  };
  text: {
    primary: string;
    secondary: string;
    tertiary: string;
    quaternary: string;
    inverse: string;
    muted: string;
    disabled: string;
  };
  border: {
    primary: string;
    secondary: string;
    tertiary: string;
    focus: string;
    error: string;
    success: string;
  };
  surface: {
    primary: string;
    secondary: string;
    tertiary: string;
    raised: string;
    overlay: string;
  };
  input: {
    bg: string;
    border: string;
    borderFocus: string;
    borderError: string;
    placeholder: string;
  };
  nav: {
    bg: string;
    border: string;
    itemHover: string;
    itemActive: string;
  };
  card: {
    bg: string;
    border: string;
    shadow: string;
  };
}

declare const baseColors: BaseColors;
declare const bakeryColors: BakeryColors;
declare const statusColors: StatusColors;
declare const chartColors: ChartColors;
declare const lightTheme: ThemeColors;
declare const darkTheme: ThemeColors;
declare const tailwindColorConfig: any;
declare const generateCSSVariables: (theme?: string) => { [key: string]: string };

declare const _default: {
  baseColors: BaseColors;
  bakeryColors: BakeryColors;
  statusColors: StatusColors;
  chartColors: ChartColors;
  lightTheme: ThemeColors;
  darkTheme: ThemeColors;
  tailwindColorConfig: any;
  generateCSSVariables: (theme?: string) => { [key: string]: string };
};

export { baseColors, bakeryColors, statusColors, chartColors, lightTheme, darkTheme, tailwindColorConfig, generateCSSVariables };
export default _default;