import * as d3_sc from 'd3-scale-chromatic'; import type { Vec3 } from '../math'; import type { ELEM_SYMBOLS } from '../labels'; export type D3InterpolateName = keyof typeof d3_sc & `interpolate${string}`; export type D3ColorSchemeName = D3InterpolateName extends `interpolate${infer Name}` ? Name : never; export declare const get_d3_interpolator: (name: D3InterpolateName) => ((t: number) => string); export declare const COLOR_SCALE_TYPES: readonly ["continuous", "categorical"]; export type ColorScaleType = (typeof COLOR_SCALE_TYPES)[number]; export declare const DEFAULT_CATEGORY_COLORS: Record; export declare const AXIS_COLORS: readonly [readonly ["x", "#d75555", "#e66666"], readonly ["y", "#55b855", "#66c966"], readonly ["z", "#5555d7", "#6666e6"]]; export declare const NEG_AXIS_COLORS: readonly [readonly ["nx", "#b84444", "#cc5555"], readonly ["ny", "#44a044", "#55b155"], readonly ["nz", "#4444b8", "#5555c9"]]; export type RGBColor = Vec3; export type ElementColorScheme = Record<(typeof ELEM_SYMBOLS)[number], RGBColor>; export declare const vesta_hex: Record; export declare const jmol_hex: Record; export declare const alloy_hex: Record; export declare const pastel_hex: Record; export declare const muted_hex: Record; export declare const dark_mode_hex: Record; export declare const ELEMENT_COLOR_SCHEMES: { readonly Vesta: Record; readonly Jmol: Record; readonly Alloy: Record; readonly Pastel: Record; readonly Muted: Record; readonly 'Dark Mode': Record; }; export type ColorSchemeName = keyof typeof ELEMENT_COLOR_SCHEMES; export declare const default_element_colors: { [x: string]: string; }; export declare const is_color: (val: unknown) => val is string; export declare const PLOT_COLORS: readonly ["#63b3ed", "#68d391", "#fbd38d", "#fc8181", "#d6bcfa", "#4fd1c7", "#f687b3", "#fed7d7", "#bee3f8", "#c6f6d5"]; export declare function luminance(clr: string): number; export declare function get_bg_color(elem: HTMLElement | null, bg_color?: string | null): string; export interface ContrastOptions { bg_color?: string; luminance_threshold?: number; choices?: [string, string]; } export declare function pick_contrast_color(options?: ContrastOptions): string; export declare const contrast_color: (options?: ContrastOptions) => (node: HTMLElement) => void; export declare function get_page_background(fallback_dark?: string, fallback_light?: string): string; export declare function is_dark_mode(): boolean; export declare function watch_dark_mode(on_change: (dark: boolean) => void): () => void; export declare function css_color_to_hex(color: string | undefined, fallback: string): string; export declare function add_alpha(color: string, alpha: number): string;