/** * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ import { Model } from '../../mol-model/structure.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { CustomProperty } from './custom-property.js'; import { CustomPropertyDescriptor } from '../../mol-model/custom-property.js'; export { CustomModelProperty }; declare namespace CustomModelProperty { interface Provider extends CustomProperty.Provider { } interface ProviderBuilder { readonly label: string; readonly descriptor: CustomPropertyDescriptor; readonly isHidden?: boolean; readonly defaultParams: Params; readonly getParams: (data: Model) => Params; readonly isApplicable: (data: Model) => boolean; readonly obtain: (ctx: CustomProperty.Context, data: Model, props: PD.Values) => Promise>; readonly type: 'static' | 'dynamic'; } function createProvider(builder: ProviderBuilder): CustomProperty.Provider; function createSimple(name: string, type: 'static' | 'dynamic', defaultValue?: T): CustomProperty.Provider; }, T | undefined>; }