// @flow
export type ColorPalette = {|
  // Backgrounds
  white: string,
  background: string,

  // Greys
  'greyscale-black': string,
  'greyscale-dark': string,
  'greyscale-medium': string,
  'greyscale-light': string,

  // Brand colours - primary
  'brand-primary-base': string,
  'brand-primary-base-hover': string,
  'brand-primary-fg': string,
  'brand-primary-fg-hover': string,
  'brand-primary-bg': string,
  'brand-primary-bg-hover': string,

  // Brand colours - secondary
  'brand-secondary-base': string,
  'brand-secondary-base-hover': string,
  'brand-secondary-fg': string,
  'brand-secondary-fg-hover': string,
  'brand-secondary-bg': string,
  'brand-secondary-bg-hover': string,

  // Flash messages
  'error-fg': string,
  'error-bg': string,
  'success-fg': string,
  'success-bg': string,
  'info-fg': string,
  'info-bg': string,

  // Auxiliary colours
  'aux-1': string,
  'aux-2': string,
  'aux-3': string,
  'aux-4': string,
|};

export type ColorPaletteColorNameKey = $Keys<ColorPalette>;

export type ColorPaletteMap = { [key: string]: ColorPaletteColorNameKey };

export type BrandProps = {|
  colorName?: ColorPaletteColorNameKey,
|};
