import { Subscription } from 'subscription'; import { type FormatterFactory } from './formatters'; import type { GenerateImageOptions, StructService, CalculateData, CalculateResult } from '../domain/services'; import { type Editor } from './editor'; import { Indigo } from './indigo'; import type { MolfileFormat } from '../domain/serializers/mol/mol.types'; import { Struct } from '../domain/entities/struct'; import { EventEmitter } from 'events'; import { type LogSettings } from '../utilities'; import { type ExportImageParams, type SupportedImageFormats, type SupportedModes, type UpdateMonomersLibraryParams } from './ketcher.types'; import type { ISettingsService } from './settings'; type SetMoleculeOptions = { position?: { x: number; y: number; }; needZoom?: boolean; preserveCanvasPosition?: boolean; }; export declare class Ketcher { #private; _id: string; logging: LogSettings; structService: StructService; _indigo: Indigo; changeEvent: Subscription; libraryUpdateEvent: Subscription; get editor(): Editor; get eventBus(): EventEmitter; /** * Get settings service for managing application settings * Returns undefined if settings service was not provided during construction */ get settingsService(): ISettingsService | undefined; constructor(structService: StructService, formatterFactory: FormatterFactory, settingsService?: ISettingsService); get id(): string; get formatterFactory(): FormatterFactory; get indigo(): Indigo; get settings(): {}; addEditor(editor: Editor): void; setSettings(settings: Record): any; getSmiles(isExtended?: boolean): Promise; getExtendedSmiles(): Promise; getMolfile(molfileFormat?: MolfileFormat): Promise; getIdt(): Promise; getAxoLabs(): Promise; getRxn(molfileFormat?: MolfileFormat): Promise; getKet(): Promise; getFasta(): Promise; getSequence(format?: '1-letter' | '3-letter'): Promise; getSmarts(): Promise; getCml(): Promise; getSdf(molfileFormat?: MolfileFormat): Promise; getRdf(molfileFormat?: MolfileFormat): Promise; getCDXml(): Promise; getCDX(): Promise; getInchi(withAuxInfo?: boolean): Promise; getInChIKey(): Promise; containsReaction(): boolean; isQueryStructureSelected(): boolean; setMolecule(structStr: string, options?: SetMoleculeOptions): Promise; setHelm(helmStr: string): Promise; addFragment(structStr: string, options?: SetMoleculeOptions): Promise; circularLayoutMonomers(): Promise; layout(): Promise; aromatize(): Promise; dearomatize(): Promise; calculate(options?: CalculateData): Promise; /** * @param {number} value - in a range [ZoomTool.instance.MINZOOMSCALE, ZoomTool.instance.MAXZOOMSCALE] */ setZoom(value: number): void; setMode(mode: SupportedModes): void; exportImage(format: SupportedImageFormats, params?: ExportImageParams): void; recognize(image: Blob, version?: string): Promise; generateImage(data: string, options?: GenerateImageOptions): Promise; reinitializeIndigo(structService: StructService): void; sendCustomAction(name: string): void; /** * Converts raw monomer data to KET format before it is sent to the editor. * * @throws {Error} When conversion fails or the server rejects the payload. * The thrown message is prefixed with * "Monomer item could not be loaded because of an error: ". */ ensureMonomersLibraryDataInKetFormat(rawMonomersData: string | JSON, params?: UpdateMonomersLibraryParams): Promise; ensureMonomersLibraryDataInSdfFormat(rawMonomersData: string | JSON, params?: UpdateMonomersLibraryParams): Promise; updateMonomersLibrary(rawMonomersData: string | JSON, params?: UpdateMonomersLibraryParams): Promise; replaceMonomersLibrary(rawMonomersData: string | JSON, params?: UpdateMonomersLibraryParams): Promise; switchToMacromoleculesMode(): void; switchToMoleculesMode(): void; } export {};