/** * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose * @author David Sehnal */ import { CustomProperty } from '../../mol-model-props/common/custom-property.js'; import { Structure, StructureQuery, StructureSelection } from '../../mol-model/structure.js'; import { PluginContext } from '../../mol-plugin/context.js'; import { Expression } from '../../mol-script/language/expression.js'; import { StateBuilder } from '../../mol-state/index.js'; import { RuntimeContext } from '../../mol-task/index.js'; import { PluginStateObject } from '../objects.js'; export declare enum StructureSelectionCategory { Type = "Type", Structure = "Structure Property", Atom = "Atom Property", Bond = "Bond Property", Residue = "Residue Property", AminoAcid = "Amino Acid", NucleicBase = "Nucleic Base", Manipulate = "Manipulate Selection", Validation = "Validation", Misc = "Miscellaneous", Internal = "Internal" } export { StructureSelectionQuery }; interface StructureSelectionQuery { readonly label: string; readonly expression: Expression; readonly description: string; readonly category: string; readonly isHidden: boolean; readonly priority: number; readonly referencesCurrent: boolean; readonly query: StructureQuery; readonly ensureCustomProperties?: (ctx: CustomProperty.Context, structure: Structure) => Promise; getSelection(plugin: PluginContext, runtime: RuntimeContext, structure: Structure): Promise; } interface StructureSelectionQueryProps { description?: string; category?: string; isHidden?: boolean; priority?: number; referencesCurrent?: boolean; ensureCustomProperties?: (ctx: CustomProperty.Context, structure: Structure) => Promise; } declare function StructureSelectionQuery(label: string, expression: Expression, props?: StructureSelectionQueryProps): StructureSelectionQuery; export declare function ResidueQuery([names, label]: [string[], string], category: string, priority?: number): StructureSelectionQuery; export declare function ElementSymbolQuery([names, label]: [string[], string], category: string, priority: number): StructureSelectionQuery; export declare function EntityDescriptionQuery([names, label]: [string[], string], category: string, priority: number): StructureSelectionQuery; export declare function getElementQueries(structures: Structure[]): StructureSelectionQuery[]; export declare function getNonStandardResidueQueries(structures: Structure[]): StructureSelectionQuery[]; export declare function getPolymerAndBranchedEntityQueries(structures: Structure[]): StructureSelectionQuery[]; export declare function applyBuiltInSelection(to: StateBuilder.To, query: keyof typeof StructureSelectionQueries, customTag?: string): StateBuilder.To>>; export declare const StructureSelectionQueries: { all: StructureSelectionQuery; current: StructureSelectionQuery; polymer: StructureSelectionQuery; trace: StructureSelectionQuery; backbone: StructureSelectionQuery; sidechain: StructureSelectionQuery; sidechainWithTrace: StructureSelectionQuery; protein: StructureSelectionQuery; nucleic: StructureSelectionQuery; helix: StructureSelectionQuery; beta: StructureSelectionQuery; water: StructureSelectionQuery; ion: StructureSelectionQuery; lipid: StructureSelectionQuery; branched: StructureSelectionQuery; branchedPlusConnected: StructureSelectionQuery; branchedConnectedOnly: StructureSelectionQuery; ligand: StructureSelectionQuery; ligandPlusConnected: StructureSelectionQuery; ligandConnectedOnly: StructureSelectionQuery; connectedOnly: StructureSelectionQuery; disulfideBridges: StructureSelectionQuery; nosBridges: StructureSelectionQuery; nonStandardPolymer: StructureSelectionQuery; coarse: StructureSelectionQuery; ring: StructureSelectionQuery; aromaticRing: StructureSelectionQuery; surroundings: StructureSelectionQuery; surroundingLigands: StructureSelectionQuery; surroundingAtoms: StructureSelectionQuery; complement: StructureSelectionQuery; covalentlyBonded: StructureSelectionQuery; covalentlyOrMetallicBonded: StructureSelectionQuery; covalentlyBondedComponent: StructureSelectionQuery; wholeResidues: StructureSelectionQuery; }; export declare class StructureSelectionQueryRegistry { list: StructureSelectionQuery[]; options: [StructureSelectionQuery, string, string][]; version: number; add(q: StructureSelectionQuery): void; remove(q: StructureSelectionQuery): void; constructor(); }