/** * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose * @author Sebastian Bittrich * @author Paul Pillot */ import { SymmetryOperator } from '../../mol-math/geometry.js'; import { Mat4 } from '../../mol-math/linear-algebra.js'; import { StructureElement } from '../../mol-model/structure.js'; import { StructureSelectionHistoryEntry } from '../../mol-plugin-state/manager/structure/selection.js'; import { PluginStateObject } from '../../mol-plugin-state/objects.js'; import { StateObjectCell, StateObjectRef } from '../../mol-state/index.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { CollapsableControls, PurePluginUIComponent } from '../base.js'; export declare class StructureSuperpositionControls extends CollapsableControls { defaultState(): { isCollapsed: boolean; header: string; brand: { accent: "gray"; svg: typeof import("../controls/icons.js").FlipToFrontSvg; }; isHidden: boolean; }; componentDidMount(): void; renderControls(): import("react/jsx-runtime").JSX.Element; } export declare const StructureSuperpositionParams: { alignSequences: PD.BooleanParam; traceOnly: PD.BooleanParam; }; export type StructureSuperpositionOptions = PD.ValuesFor; type SuperpositionControlsState = { isBusy: boolean; action?: 'byChains' | 'byAtoms' | 'byTMAlign' | 'options'; canUseDb?: boolean; options: StructureSuperpositionOptions; }; export interface LociEntry { loci: StructureElement.Loci; label: string; cell: StateObjectCell; } interface AtomsLociEntry extends LociEntry { atoms: StructureSelectionHistoryEntry[]; } export declare class SuperpositionControls extends PurePluginUIComponent<{}, SuperpositionControlsState> { state: SuperpositionControlsState; componentDidMount(): void; get selection(): import("../../mol-plugin-state/manager/structure/selection.js").StructureSelectionManager; transform(s: StateObjectRef, matrix: Mat4, coordinateSystem?: SymmetryOperator): Promise; private getRootStructure; superposeChains: () => Promise; superposeAtoms: () => Promise; superposeDb: () => Promise; superposeTMAlign: () => Promise; cameraReset(): Promise; toggleByChains: () => void; toggleByAtoms: () => void; toggleByTMAlign: () => void; toggleOptions: () => void; highlight(loci: StructureElement.Loci): void; moveHistory(e: StructureSelectionHistoryEntry, direction: 'up' | 'down'): void; focusLoci(loci: StructureElement.Loci): void; lociEntry(e: LociEntry, idx: number): import("react/jsx-runtime").JSX.Element; historyEntry(e: StructureSelectionHistoryEntry, idx: number): import("react/jsx-runtime").JSX.Element; atomsLociEntry(e: AtomsLociEntry, idx: number): import("react/jsx-runtime").JSX.Element; get chainEntries(): LociEntry[]; get atomEntries(): AtomsLociEntry[]; toggleHint(): import("react/jsx-runtime").JSX.Element | null; addByChains(): import("react/jsx-runtime").JSX.Element; addByAtoms(): import("react/jsx-runtime").JSX.Element; addByTMAlign(): import("react/jsx-runtime").JSX.Element; superposeByDbMapping(): import("react/jsx-runtime").JSX.Element; private setOptions; render(): import("react/jsx-runtime").JSX.Element; } export {};