import type { MoleculeView, StateMolecule } from '@zakodium/nmrium-core'; import type { FifoLogger } from 'fifo-logger'; import type { Draft } from 'immer'; import type { DiaIDAndInfo, TopicMolecule } from 'openchemlib-utils'; import type { PredictedSpectraResult, PredictionOptions } from '../../../data/PredictionManager.js'; import type { MoleculeBoundingRect } from '../../../data/molecules/Molecule.js'; import type { State } from '../Reducer.js'; import type { ActionType } from '../types/ActionType.js'; interface AddMoleculeProps { molfile: string; id?: string; floatMoleculeOnSave?: boolean; defaultMoleculeSettings?: MoleculeView; label?: string; } type AddMoleculeAction = ActionType<'ADD_MOLECULE', AddMoleculeProps>; type AddMoleculesAction = ActionType<'ADD_MOLECULES', { molecules: StateMolecule[]; defaultMoleculeSettings?: MoleculeView; }>; type SetMoleculeAction = ActionType<'SET_MOLECULE', Required> & Omit & { mappings?: ReturnType; }>; type DeleteMoleculeAction = ActionType<'DELETE_MOLECULE', { id: string; diaIDs?: DiaIDAndInfo[]; }>; type PredictSpectraFromMoleculeAction = ActionType<'PREDICT_SPECTRA', { logger: FifoLogger; options: PredictionOptions; predictedSpectra: PredictedSpectraResult; molecule: StateMolecule; action?: 'save' | 'add'; }>; type ToggleMoleculeViewObjectAction = ActionType<'FLOAT_MOLECULE_OVER_SPECTRUM', { id: string; }>; type ToggleMoleculeLabelAction = ActionType<'TOGGLE_MOLECULE_LABEL', { id: string; }>; interface ChangeMoleculeAnnotationOptions extends Pick { id: string; } type ChangeMoleculeAnnotationAction = ActionType<'CHANGE_MOLECULE_ANNOTATION', ChangeMoleculeAnnotationOptions>; type ChangeFloatMoleculePositionAction = ActionType<'CHANGE_FLOAT_MOLECULE_POSITION', { id: string; bounding: MoleculeBoundingRect; }>; type ChangeMoleculeLabelAction = ActionType<'CHANGE_MOLECULE_LABEL', { id: string; label: string; }>; export type MoleculeActions = AddMoleculeAction | AddMoleculesAction | SetMoleculeAction | DeleteMoleculeAction | PredictSpectraFromMoleculeAction | ToggleMoleculeViewObjectAction | ChangeFloatMoleculePositionAction | ChangeMoleculeLabelAction | ChangeMoleculeAnnotationAction | ToggleMoleculeLabelAction; declare function addMolecule(draft: Draft, props: AddMoleculeProps): { mf: string; em: number; mw: number; svg: string; atoms: { [x: string]: number; }; id: string; molfile: string; label: string; selector?: { root?: string | undefined; general?: { dataSelection?: import("@zakodium/nmrium-core").DataSelectionOption | undefined; keep1D?: boolean | undefined; keep2D?: boolean | undefined; onlyReal?: boolean | undefined; } | undefined; files?: string[] | undefined; } | undefined; } | undefined; declare function handleAddMolecule(draft: Draft, action: AddMoleculeAction): void; declare function handleAddMolecules(draft: Draft, action: AddMoleculesAction): void; declare function handleSetMolecule(draft: Draft, action: SetMoleculeAction): void; declare function handleDeleteMolecule(draft: Draft, action: DeleteMoleculeAction): void; declare function handlePredictSpectraFromMolecule(draft: Draft, action: PredictSpectraFromMoleculeAction): void; declare function initMoleculeViewProperties(draft: Draft, options: { id: string; defaultMoleculeSettings?: MoleculeView; isMoleculeFloating?: boolean; }): void; declare function handleFloatMoleculeOverSpectrum(draft: Draft, action: ToggleMoleculeViewObjectAction): void; declare function handleChangeMoleculeAnnotation(draft: Draft, action: ChangeMoleculeAnnotationAction): void; declare function handleChangeFloatMoleculePosition(draft: Draft, action: ChangeFloatMoleculePositionAction): void; declare function handleChangeMoleculeLabel(draft: Draft, action: ChangeMoleculeLabelAction): void; declare function handleToggleMoleculeLabel(draft: Draft, action: ToggleMoleculeLabelAction): void; export { addMolecule, handleAddMolecule, handleAddMolecules, handleChangeFloatMoleculePosition, handleChangeMoleculeAnnotation, handleChangeMoleculeLabel, handleDeleteMolecule, handleFloatMoleculeOverSpectrum, handlePredictSpectraFromMolecule, handleSetMolecule, handleToggleMoleculeLabel, initMoleculeViewProperties, }; //# sourceMappingURL=MoleculeActions.d.ts.map