import { Color, PaletteMode } from '..'; 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 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: { ( color: ColorPartial, mainShade?: number | string, lightShade?: number | string, darkShade?: number | string ): PaletteColor; (color: PaletteColorOptions): PaletteColor; }; } 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;