/** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ import { Task, RuntimeContext } from 'mol-task' import { RenderObject } from 'mol-gl/render-object' import { PickingId } from '../util/picking'; import { Loci } from 'mol-model/loci'; import { MarkerAction } from '../util/marker-data'; export interface RepresentationProps {} export interface Representation { readonly renderObjects: ReadonlyArray readonly props: Readonly

create: (data: D, props?: P) => Task update: (props: P) => Task getLoci: (pickingId: PickingId) => Loci mark: (loci: Loci, action: MarkerAction) => void destroy: () => void } export interface Visual { readonly renderObject: RenderObject create: (ctx: RuntimeContext, data: D, props: P) => Promise update: (ctx: RuntimeContext, props: P) => Promise getLoci: (pickingId: PickingId) => Loci mark: (loci: Loci, action: MarkerAction) => void destroy: () => void }