import * as ui from 'datagrok-api/ui'; import * as DG from 'datagrok-api/dg'; import { Observable } from 'rxjs'; import type { Point, App, HelmType, IHelmEditorOptions } from './types'; import { MonomersFuncs, HelmMol, IHelmWebEditor, HelmAtom } from './types'; import { IMonomerLibBase } from '../types/monomer-library'; import { ISeqHelper } from '../utils/seq-helper'; import { SeqValueBase } from '../utils/macromolecule/seq-handler'; export type IHelmInputInitOptions = ui.input.IInputInitOptions & { editorOptions: Partial; editable: boolean; }; export declare abstract class HelmInputBase extends DG.JsInputBase { abstract get molValue(): HelmMol; abstract set molValue(value: HelmMol); abstract get onMouseMove(): Observable; abstract get onClick(): Observable; abstract redraw(): void; abstract showTooltip(content: HTMLElement | string, a: HelmAtom): void; } /** * @property {Map} monomerMap srcPosIdx -> resPosIdx */ export type HelmConvertRes = { srcHelm: string; resHelm: string; monomerMap: Map | null; }; export declare const HelmNotSupportedErrorType = "HelmNotSupportedError"; export declare class HelmNotSupportedError extends Error { readonly type = "HelmNotSupportedError"; constructor(message?: string); } export interface IHelmHelper { get seqHelper(): ISeqHelper; createHelmInput(name: string, options?: IHelmInputInitOptions): HelmInputBase; createHelmWebEditor(host?: HTMLElement, options?: Partial): IHelmWebEditor; createWebEditorApp(host: HTMLDivElement, helm?: string): App; get originalMonomersFuncs(): MonomersFuncs | null; buildMonomersFuncsFromLib(monomerLib: IMonomerLibBase): MonomersFuncs; overrideMonomersFuncs(monomersFuncs: MonomersFuncs): MonomersFuncs; revertOriginalMonomersFuncs(): MonomersFuncs; getHoveredAtom(x: number, y: number, mol: HelmMol, height: number): HelmAtom | null; /** Gets pseudo molfiles with monomers as atoms */ getMolfiles(helmStrList: string[]): string[]; parse(helm: string, origin?: Point): HelmMol; removeGaps(helm: string): HelmConvertRes; } export declare function getHelmHelper(): Promise; declare module 'datagrok-api/ui' { namespace input { /** To create HelmInput synchronously, get the {@link IHelmHelper} object * via {@link getHelmHelper} in advance, and call {@link IHelmHelper.createHelmInput}. */ function helmAsync(name: string, options?: IHelmInputInitOptions): Promise; } } /** Inputs logic */ export declare function getMonomerHandleArgs(a: HelmAtom | HelmType, name?: string): [ /** biotype *//** biotype */ HelmType, /** elem */ string]; //# sourceMappingURL=helm-helper.d.ts.map