export type PaletteMode = 'light' | 'dark'; export interface Color { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; A100: string; A200: string; A400: string; A700: string; } export {}; // use standalone interface over typeof colors/commons // to enable module augmentation export interface CommonColors { black: string; white: string; } export type ColorPartial = Partial; export interface TypeText { primary: string; secondary: string; disabled: string; } export interface TypeAction { active: string; hover: string; hoverOpacity: number; selected: string; selectedOpacity: number; disabled: string; disabledOpacity: number; disabledBackground: string; focus: string; focusOpacity: number; activatedOpacity: number; } export interface TypeBackground { default: string; paper: string; } export type TypeDivider = string; export type PaletteColorOptions = SimplePaletteColorOptions | ColorPartial; export interface SimplePaletteColorOptions { light?: string; main: string; dark?: string; contrastText?: string; } export interface PaletteColor { light: string; main: string; dark: string; contrastText: string; } export interface TypeObject { text: TypeText; action: TypeAction; divider: TypeDivider; background: TypeBackground; } export type PaletteTonalOffset = | number | { light: number; dark: number; }; export const light: TypeObject; export const dark: TypeObject; export interface PaletteAugmentColorOptions { color: PaletteColorOptions; mainShade?: number | string; lightShade?: number | string; darkShade?: number | string; name?: number | string; } export interface Palette { common: CommonColors; mode: PaletteMode; contrastThreshold: number; tonalOffset: PaletteTonalOffset; primary: PaletteColor; secondary: PaletteColor; error: PaletteColor; warning: PaletteColor; info: PaletteColor; success: PaletteColor; grey: Color; text: TypeText; divider: TypeDivider; action: TypeAction; background: TypeBackground; getContrastText: (background: string) => string; augmentColor: (options: PaletteAugmentColorOptions) => PaletteColor; } export interface Channels { mainChannel: string; lightChannel: string; darkChannel: string; contrastTextChannel: string; } export type PartialTypeObject = { [P in keyof TypeObject]?: Partial }; export interface PaletteOptions { primary?: PaletteColorOptions; secondary?: PaletteColorOptions; error?: PaletteColorOptions; warning?: PaletteColorOptions; info?: PaletteColorOptions; success?: PaletteColorOptions; mode?: PaletteMode; tonalOffset?: PaletteTonalOffset; contrastThreshold?: number; common?: Partial; grey?: ColorPartial; text?: Partial; divider?: string; action?: Partial; background?: Partial; getContrastText?: (background: string) => string; } export default function createPalette(palette: PaletteOptions): Palette;