molstar
Version:
A comprehensive macromolecular library.
50 lines (49 loc) • 2.11 kB
TypeScript
/**
* Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { SizeType, LocationSize } from '../mol-geo/geometry/size-data';
import { ParamDefinition as PD } from '../mol-util/param-definition';
import { ThemeDataContext, ThemeRegistry, ThemeProvider } from '../mol-theme/theme';
export { SizeTheme };
interface SizeTheme<P extends PD.Params> {
readonly factory: SizeTheme.Factory<P>;
readonly granularity: SizeType;
readonly size: LocationSize;
readonly props: Readonly<PD.Values<P>>;
readonly description?: string;
}
declare namespace SizeTheme {
export type Props = {
[k: string]: any;
};
export type Factory<P extends PD.Params> = (ctx: ThemeDataContext, props: PD.Values<P>) => SizeTheme<P>;
export const EmptyFactory: () => SizeTheme<{}>;
export const Empty: SizeTheme<{}>;
export function areEqual(themeA: SizeTheme<any>, themeB: SizeTheme<any>): boolean;
export interface Provider<P extends PD.Params = any, Id extends string = string> extends ThemeProvider<SizeTheme<P>, P, Id> {
}
export const EmptyProvider: Provider<{}>;
export type Registry = ThemeRegistry<SizeTheme<any>>;
export function createRegistry(): ThemeRegistry<SizeTheme<{}>>;
export const BuiltIn: {
physical: Provider<{
scale: PD.Numeric;
}, "physical">;
'shape-group': Provider<{}, "shape-group">;
uncertainty: Provider<{
bfactorFactor: PD.Numeric;
rmsfFactor: PD.Numeric;
baseSize: PD.Numeric;
}, "uncertainty">;
uniform: Provider<{
value: PD.Numeric;
}, "uniform">;
};
type _BuiltIn = typeof BuiltIn;
export type BuiltIn = keyof _BuiltIn;
export type ParamValues<C extends SizeTheme.Provider<any>> = C extends SizeTheme.Provider<infer P> ? PD.Values<P> : never;
export type BuiltInParams<T extends BuiltIn> = Partial<ParamValues<_BuiltIn[T]>>;
export {};
}