UNPKG

molstar

Version:

A comprehensive macromolecular library.

1,180 lines 51.9 kB
/** * Copyright (c) 2018-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { Color } from '../mol-util/color'; import { Location } from '../mol-model/location'; import { ColorType, ColorTypeDirect, ColorTypeGrid, ColorTypeLocation } from '../mol-geo/geometry/color-data'; import { ParamDefinition as PD } from '../mol-util/param-definition'; import { ThemeDataContext, ThemeRegistry, ThemeProvider } from './theme'; import { ScaleLegend, TableLegend } from '../mol-util/legend'; import type { Texture, TextureFilter } from '../mol-gl/webgl/texture'; import { Vec3, Vec4 } from '../mol-math/linear-algebra'; import { ColorListEntry } from '../mol-util/color/color'; export type LocationColor = (location: Location, isSecondary: boolean) => Color; export interface ColorVolume { colors: Texture; dimension: Vec3; transform: Vec4; } export { ColorTheme }; type ColorThemeShared<P extends PD.Params, G extends ColorType> = { readonly factory: ColorTheme.Factory<P, G>; readonly props: Readonly<PD.Values<P>>; /** * if palette is defined, 24bit RGB color value normalized to interval [0, 1] * is used as index to the colors */ readonly palette?: Readonly<ColorTheme.Palette>; readonly preferSmoothing?: boolean; readonly contextHash?: number; readonly description?: string; readonly legend?: Readonly<ScaleLegend | TableLegend>; }; type ColorThemeLocation<P extends PD.Params> = { readonly granularity: ColorTypeLocation; readonly color: LocationColor; } & ColorThemeShared<P, ColorTypeLocation>; type ColorThemeGrid<P extends PD.Params> = { readonly granularity: ColorTypeGrid; readonly grid: ColorVolume; } & ColorThemeShared<P, ColorTypeGrid>; type ColorThemeDirect<P extends PD.Params> = { readonly granularity: ColorTypeDirect; } & ColorThemeShared<P, ColorTypeDirect>; type ColorTheme<P extends PD.Params, G extends ColorType = ColorTypeLocation> = G extends ColorTypeLocation ? ColorThemeLocation<P> : G extends ColorTypeGrid ? ColorThemeGrid<P> : G extends ColorTypeDirect ? ColorThemeDirect<P> : never; declare namespace ColorTheme { export const Category: { Atom: string; Chain: string; Residue: string; Symmetry: string; Validation: string; Misc: string; }; export interface Palette { colors: Color[]; filter?: TextureFilter; domain?: [number, number]; defaultColor?: Color; } export function Palette(list: ColorListEntry[], kind: 'set' | 'interpolate', domain?: [number, number], defaultColor?: Color): Palette; export const PaletteScale: number; export type Props = { [k: string]: any; }; export type Factory<P extends PD.Params, G extends ColorType> = (ctx: ThemeDataContext, props: PD.Values<P>) => ColorTheme<P, G>; export const EmptyFactory: () => ColorThemeLocation<{}>; export const Empty: ColorTheme<{}>; export function areEqual(themeA: ColorTheme<any, any>, themeB: ColorTheme<any, any>): boolean; export interface Provider<P extends PD.Params = any, Id extends string = string, G extends ColorType = ColorType> extends ThemeProvider<ColorTheme<P, G>, P, Id, G> { } export const EmptyProvider: Provider<{}>; export type Registry = ThemeRegistry<ColorTheme<any, any>>; export function createRegistry(): ThemeRegistry<ColorThemeLocation<{}> | ColorThemeDirect<{}> | ColorThemeGrid<{}>>; export const BuiltIn: { 'atom-id': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "atom-id", ColorType>; 'carbohydrate-symbol': Provider<{}, "carbohydrate-symbol", ColorType>; cartoon: Provider<{ mainchain: PD.Mapped<PD.NamedParams<PD.Normalize<{ value: Color; saturation: number; lightness: number; }>, "uniform"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; asymId: "label" | "auth"; }>, "chain-id"> | PD.NamedParams<PD.Normalize<{ overrideWater: boolean; waterColor: Color; palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-id"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-source"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "model-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "structure-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "trajectory-index"> | PD.NamedParams<PD.Normalize<{ saturation: number; lightness: number; colors: PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ water: /*elided*/ any; ion: /*elided*/ any; protein: /*elided*/ any; RNA: /*elided*/ any; DNA: /*elided*/ any; PNA: /*elided*/ any; saccharide: /*elided*/ any; }>, "custom">; }>, "molecule-type"> | PD.NamedParams<PD.Normalize<{ saturation: number; lightness: number; colors: PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ alphaHelix: /*elided*/ any; threeTenHelix: /*elided*/ any; piHelix: /*elided*/ any; betaTurn: /*elided*/ any; betaStrand: /*elided*/ any; coil: /*elided*/ any; bend: /*elided*/ any; turn: /*elided*/ any; dna: /*elided*/ any; rna: /*elided*/ any; carbohydrate: /*elided*/ any; }>, "custom">; }>, "secondary-structure">>; sidechain: PD.Mapped<PD.NamedParams<PD.Normalize<{ value: Color; saturation: number; lightness: number; }>, "uniform"> | PD.NamedParams<PD.Normalize<{ domain: [number, number]; list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "occupancy"> | PD.NamedParams<PD.Normalize<{ carbonColor: PD.NamedParams<PD.Normalize<{ value: /*elided*/ any; saturation: /*elided*/ any; lightness: /*elided*/ any; }>, "uniform"> | PD.NamedParams<PD.Normalize<unknown>, "element-symbol"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; asymId: /*elided*/ any; }>, "chain-id"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; }>, "operator-name"> | PD.NamedParams<PD.Normalize<{ overrideWater: /*elided*/ any; waterColor: /*elided*/ any; palette: /*elided*/ any; }>, "entity-id"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; }>, "entity-source"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; }>, "model-index"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; }>, "structure-index"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; }>, "unit-index"> | PD.NamedParams<PD.Normalize<{ palette: /*elided*/ any; }>, "trajectory-index">; saturation: number; lightness: number; colors: PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ H: /*elided*/ any; D: /*elided*/ any; T: /*elided*/ any; HE: /*elided*/ any; LI: /*elided*/ any; BE: /*elided*/ any; B: /*elided*/ any; C: /*elided*/ any; N: /*elided*/ any; O: /*elided*/ any; F: /*elided*/ any; NE: /*elided*/ any; NA: /*elided*/ any; MG: /*elided*/ any; AL: /*elided*/ any; SI: /*elided*/ any; P: /*elided*/ any; S: /*elided*/ any; CL: /*elided*/ any; AR: /*elided*/ any; K: /*elided*/ any; CA: /*elided*/ any; SC: /*elided*/ any; TI: /*elided*/ any; V: /*elided*/ any; CR: /*elided*/ any; MN: /*elided*/ any; FE: /*elided*/ any; CO: /*elided*/ any; NI: /*elided*/ any; CU: /*elided*/ any; ZN: /*elided*/ any; GA: /*elided*/ any; GE: /*elided*/ any; AS: /*elided*/ any; SE: /*elided*/ any; BR: /*elided*/ any; KR: /*elided*/ any; RB: /*elided*/ any; SR: /*elided*/ any; Y: /*elided*/ any; ZR: /*elided*/ any; NB: /*elided*/ any; MO: /*elided*/ any; TC: /*elided*/ any; RU: /*elided*/ any; RH: /*elided*/ any; PD: /*elided*/ any; AG: /*elided*/ any; CD: /*elided*/ any; IN: /*elided*/ any; SN: /*elided*/ any; SB: /*elided*/ any; TE: /*elided*/ any; I: /*elided*/ any; XE: /*elided*/ any; CS: /*elided*/ any; BA: /*elided*/ any; LA: /*elided*/ any; CE: /*elided*/ any; PR: /*elided*/ any; ND: /*elided*/ any; PM: /*elided*/ any; SM: /*elided*/ any; EU: /*elided*/ any; GD: /*elided*/ any; TB: /*elided*/ any; DY: /*elided*/ any; HO: /*elided*/ any; ER: /*elided*/ any; TM: /*elided*/ any; YB: /*elided*/ any; LU: /*elided*/ any; HF: /*elided*/ any; TA: /*elided*/ any; W: /*elided*/ any; RE: /*elided*/ any; OS: /*elided*/ any; IR: /*elided*/ any; PT: /*elided*/ any; AU: /*elided*/ any; HG: /*elided*/ any; TL: /*elided*/ any; PB: /*elided*/ any; BI: /*elided*/ any; PO: /*elided*/ any; AT: /*elided*/ any; RN: /*elided*/ any; FR: /*elided*/ any; RA: /*elided*/ any; AC: /*elided*/ any; TH: /*elided*/ any; PA: /*elided*/ any; U: /*elided*/ any; NP: /*elided*/ any; PU: /*elided*/ any; AM: /*elided*/ any; CM: /*elided*/ any; BK: /*elided*/ any; CF: /*elided*/ any; ES: /*elided*/ any; FM: /*elided*/ any; MD: /*elided*/ any; NO: /*elided*/ any; LR: /*elided*/ any; RF: /*elided*/ any; DB: /*elided*/ any; SG: /*elided*/ any; BH: /*elided*/ any; HS: /*elided*/ any; MT: /*elided*/ any; DS: /*elided*/ any; RG: /*elided*/ any; CN: /*elided*/ any; UUT: /*elided*/ any; FL: /*elided*/ any; UUP: /*elided*/ any; LV: /*elided*/ any; UUH: /*elided*/ any; }>, "custom">; }>, "element-symbol"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; scale: "DGwif" | "DGwoct" | "Oct-IF"; }>, "hydrophobicity"> | PD.NamedParams<PD.Normalize<{ domain: [number, number]; list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "uncertainty"> | PD.NamedParams<PD.Normalize<{ saturation: number; lightness: number; colors: PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ ALA: /*elided*/ any; ARG: /*elided*/ any; ASN: /*elided*/ any; ASP: /*elided*/ any; CYS: /*elided*/ any; GLN: /*elided*/ any; GLU: /*elided*/ any; GLY: /*elided*/ any; HIS: /*elided*/ any; ILE: /*elided*/ any; LEU: /*elided*/ any; LYS: /*elided*/ any; MET: /*elided*/ any; PHE: /*elided*/ any; PRO: /*elided*/ any; SER: /*elided*/ any; THR: /*elided*/ any; TRP: /*elided*/ any; TYR: /*elided*/ any; VAL: /*elided*/ any; A: /*elided*/ any; G: /*elided*/ any; I: /*elided*/ any; C: /*elided*/ any; T: /*elided*/ any; U: /*elided*/ any; DA: /*elided*/ any; DG: /*elided*/ any; DI: /*elided*/ any; DC: /*elided*/ any; DT: /*elided*/ any; DU: /*elided*/ any; APN: /*elided*/ any; GPN: /*elided*/ any; CPN: /*elided*/ any; TPN: /*elided*/ any; }>, "custom">; }>, "residue-name"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "sequence-id"> | PD.NamedParams<PD.Normalize<{ domain: [number, number]; list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "partial-charge">>; }, "cartoon", ColorType>; 'chain-id': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; asymId: PD.Select<"label" | "auth">; }, "chain-id", ColorType>; 'element-index': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "element-index", ColorType>; 'element-symbol': Provider<{ carbonColor: PD.Mapped<PD.NamedParams<PD.Normalize<{ value: Color; saturation: number; lightness: number; }>, "uniform"> | PD.NamedParams<PD.Normalize<unknown>, "element-symbol"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; asymId: "label" | "auth"; }>, "chain-id"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "operator-name"> | PD.NamedParams<PD.Normalize<{ overrideWater: boolean; waterColor: Color; palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-id"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-source"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "model-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "structure-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "unit-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "trajectory-index">>; saturation: PD.Numeric; lightness: PD.Numeric; colors: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ H: Color; D: Color; T: Color; HE: Color; LI: Color; BE: Color; B: Color; C: Color; N: Color; O: Color; F: Color; NE: Color; NA: Color; MG: Color; AL: Color; SI: Color; P: Color; S: Color; CL: Color; AR: Color; K: Color; CA: Color; SC: Color; TI: Color; V: Color; CR: Color; MN: Color; FE: Color; CO: Color; NI: Color; CU: Color; ZN: Color; GA: Color; GE: Color; AS: Color; SE: Color; BR: Color; KR: Color; RB: Color; SR: Color; Y: Color; ZR: Color; NB: Color; MO: Color; TC: Color; RU: Color; RH: Color; PD: Color; AG: Color; CD: Color; IN: Color; SN: Color; SB: Color; TE: Color; I: Color; XE: Color; CS: Color; BA: Color; LA: Color; CE: Color; PR: Color; ND: Color; PM: Color; SM: Color; EU: Color; GD: Color; TB: Color; DY: Color; HO: Color; ER: Color; TM: Color; YB: Color; LU: Color; HF: Color; TA: Color; W: Color; RE: Color; OS: Color; IR: Color; PT: Color; AU: Color; HG: Color; TL: Color; PB: Color; BI: Color; PO: Color; AT: Color; RN: Color; FR: Color; RA: Color; AC: Color; TH: Color; PA: Color; U: Color; NP: Color; PU: Color; AM: Color; CM: Color; BK: Color; CF: Color; ES: Color; FM: Color; MD: Color; NO: Color; LR: Color; RF: Color; DB: Color; SG: Color; BH: Color; HS: Color; MT: Color; DS: Color; RG: Color; CN: Color; UUT: Color; FL: Color; UUP: Color; LV: Color; UUH: Color; }>, "custom">>; }, "element-symbol", ColorType>; 'entity-id': Provider<{ overrideWater: PD.BooleanParam; waterColor: PD.Color; palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "entity-id", ColorType>; 'entity-source': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "entity-source", ColorType>; 'external-structure': Provider<{ structure: PD.ValueRef<import("../mol-model/structure").Structure>; style: PD.Mapped<PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; asymId: "label" | "auth"; }>, "chain-id"> | PD.NamedParams<PD.Normalize<{ overrideWater: boolean; waterColor: Color; palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-id"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-source"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "model-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "structure-index"> | PD.NamedParams<PD.Normalize<{ saturation: number; lightness: number; colors: PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ water: /*elided*/ any; ion: /*elided*/ any; protein: /*elided*/ any; RNA: /*elided*/ any; DNA: /*elided*/ any; PNA: /*elided*/ any; saccharide: /*elided*/ any; }>, "custom">; }>, "molecule-type">>; defaultColor: PD.Color; maxDistance: PD.Numeric; approxMaxDistance: PD.Numeric; normalOffset: PD.Numeric; backboneOnly: PD.BooleanParam; }, "external-structure", ColorType>; 'external-volume': Provider<{ volume: PD.ValueRef<import("../mol-model/volume").Volume>; coloring: PD.Mapped<PD.NamedParams<PD.Normalize<{ domain: PD.NamedParams<[number, number], "custom"> | PD.NamedParams<PD.Normalize<{ symmetric: /*elided*/ any; }>, "auto">; list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "absolute-value"> | PD.NamedParams<PD.Normalize<{ domain: PD.NamedParams<[number, number], "custom"> | PD.NamedParams<PD.Normalize<{ symmetric: /*elided*/ any; }>, "auto">; list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "relative-value">>; defaultColor: PD.Color; normalOffset: PD.Numeric; usePalette: PD.BooleanParam; }, "external-volume", ColorType>; 'formal-charge': Provider<{ domain: PD.Interval; list: PD.ColorList; }, "formal-charge", ColorType>; hydrophobicity: Provider<{ list: PD.ColorList; scale: PD.Select<"DGwif" | "DGwoct" | "Oct-IF">; }, "hydrophobicity", ColorType>; illustrative: Provider<{ style: PD.Mapped<PD.NamedParams<PD.Normalize<{ value: Color; saturation: number; lightness: number; }>, "uniform"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; asymId: "label" | "auth"; }>, "chain-id"> | PD.NamedParams<PD.Normalize<{ overrideWater: boolean; waterColor: Color; palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-id"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "entity-source"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "model-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "structure-index"> | PD.NamedParams<PD.Normalize<{ palette: PD.NamedParams<PD.Normalize<{ maxCount: /*elided*/ any; hue: /*elided*/ any; chroma: /*elided*/ any; luminance: /*elided*/ any; sort: /*elided*/ any; clusteringStepCount: /*elided*/ any; minSampleCount: /*elided*/ any; sampleCountFactor: /*elided*/ any; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: /*elided*/ any; }>, "colors">; }>, "trajectory-index"> | PD.NamedParams<PD.Normalize<{ saturation: number; lightness: number; colors: PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ water: /*elided*/ any; ion: /*elided*/ any; protein: /*elided*/ any; RNA: /*elided*/ any; DNA: /*elided*/ any; PNA: /*elided*/ any; saccharide: /*elided*/ any; }>, "custom">; }>, "molecule-type">>; carbonLightness: PD.Numeric; }, "illustrative", ColorType>; 'model-index': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "model-index", ColorType>; 'molecule-type': Provider<{ saturation: PD.Numeric; lightness: PD.Numeric; colors: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ water: Color; ion: Color; protein: Color; RNA: Color; DNA: Color; PNA: Color; saccharide: Color; }>, "custom">>; }, "molecule-type", ColorType>; occupancy: Provider<{ domain: PD.Interval; list: PD.ColorList; }, "occupancy", ColorType>; 'operator-hkl': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "operator-hkl", ColorType>; 'operator-name': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "operator-name", ColorType>; 'partial-charge': Provider<{ domain: PD.Interval; list: PD.ColorList; }, "partial-charge", ColorType>; 'polymer-id': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "polymer-id", ColorType>; 'polymer-index': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "polymer-index", ColorType>; 'residue-name': Provider<{ saturation: PD.Numeric; lightness: PD.Numeric; colors: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ ALA: Color; ARG: Color; ASN: Color; ASP: Color; CYS: Color; GLN: Color; GLU: Color; GLY: Color; HIS: Color; ILE: Color; LEU: Color; LYS: Color; MET: Color; PHE: Color; PRO: Color; SER: Color; THR: Color; TRP: Color; TYR: Color; VAL: Color; A: Color; G: Color; I: Color; C: Color; T: Color; U: Color; DA: Color; DG: Color; DI: Color; DC: Color; DT: Color; DU: Color; APN: Color; GPN: Color; CPN: Color; TPN: Color; }>, "custom">>; }, "residue-name", ColorType>; 'secondary-structure': Provider<{ saturation: PD.Numeric; lightness: PD.Numeric; colors: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "default"> | PD.NamedParams<PD.Normalize<{ alphaHelix: Color; threeTenHelix: Color; piHelix: Color; betaTurn: Color; betaStrand: Color; coil: Color; bend: Color; turn: Color; dna: Color; rna: Color; carbohydrate: Color; }>, "custom">>; }, "secondary-structure", ColorType>; 'sequence-id': Provider<{ list: PD.ColorList; }, "sequence-id", ColorType>; 'shape-group': Provider<{}, "shape-group", ColorType>; 'structure-index': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "structure-index", ColorType>; 'trajectory-index': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedParams<PD.Normalize<{ list: { kind: "interpolate" | "set"; colors: ColorListEntry[]; }; }>, "colors">>; }, "trajectory-index", ColorType>; uncertainty: Provider<{ domain: PD.Interval; list: PD.ColorList; }, "uncertainty", ColorType>; 'unit-index': Provider<{ palette: PD.Mapped<PD.NamedParams<PD.Normalize<{ maxCount: number; hue: [number, number]; chroma: [number, number]; luminance: [number, number]; sort: "none" | "contrast"; clusteringStepCount: number; minSampleCount: number; sampleCountFactor: number; }>, "generate"> | PD.NamedPara