///
import { Subscription } from 'subscription';
import { FormatterFactory } from './formatters';
import { GenerateImageOptions, StructService, CalculateData, type CalculateResult } from "../domain/services";
import { Editor } from './editor';
import { Indigo } from "./indigo";
import { MolfileFormat } from "../domain/serializers";
import { Struct } from "../domain/entities";
import { EventEmitter } from 'events';
import { LogSettings } from "../utilities";
import { ExportImageParams, SupportedImageFormats, SupportedModes, UpdateMonomersLibraryParams } from "./ketcher.types";
declare type SetMoleculeOptions = {
position?: {
x: number;
y: number;
};
needZoom?: boolean;
};
export declare class Ketcher {
#private;
_id: string;
logging: LogSettings;
structService: StructService;
_indigo: Indigo;
changeEvent: Subscription;
libraryUpdateEvent: Subscription;
get editor(): Editor;
get eventBus(): EventEmitter;
constructor(structService: StructService, formatterFactory: FormatterFactory);
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;
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;
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 {};