/** * Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal */ import { SecondaryStructureType } from '../types'; /** Secondary structure "indexed" by residues. */ interface SecondaryStructure { readonly type: ArrayLike, /** index into the elements array */ readonly key: ArrayLike, /** indexed by key */ readonly elements: ReadonlyArray, /** string representation of DSSP annotation */ readonly dsspString: String } namespace SecondaryStructure { export type Element = None | Turn | Helix | Sheet export interface None { kind: 'none' } export interface Turn { kind: 'turn', flags: SecondaryStructureType } export interface Helix { kind: 'helix', flags: SecondaryStructureType, type_id: string, // TODO: use aliased type? helix_class: string, details?: string } export interface Sheet { kind: 'sheet', flags: SecondaryStructureType, sheet_id: string, symmetry?: string } } export { SecondaryStructure }