/**************************************************************************** * Copyright 2021 EPAM Systems * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ import { PayloadAction } from '@reduxjs/toolkit'; import { IRnaPreset } from "../../components/monomerLibrary/RnaBuilder/types"; import { RootState } from "./.."; import { LabeledNodesWithPositionInSequence, MonomerItemType, RnaPhosphatePosition } from 'ketcher-core'; import { MonomerGroups } from "../../constants"; export declare enum RnaBuilderPresetsItem { Presets = "Presets" } export declare type RnaBuilderNucleotidesItem = 'Nucleotides'; export declare type RnaBuilderItem = RnaBuilderPresetsItem | MonomerGroups | RnaBuilderNucleotidesItem; export interface PresetPhosphateFilter { fivePrime: boolean; threePrime: boolean; noPhosphate: boolean; } interface IRnaBuilderState { activePreset: IRnaPreset | null; sequenceSelection: LabeledNodesWithPositionInSequence[] | undefined; sequenceSelectionName: string | undefined; isSequenceFirstsOnlyNucleoelementsSelected: boolean | undefined; activePresetMonomerGroup: { groupName: MonomerGroups; groupItem: MonomerItemType; } | null; groupItemValidations: { [MonomerGroups.BASES]: string[]; [MonomerGroups.SUGARS]: string[]; [MonomerGroups.PHOSPHATES]: string[]; }; presetsDefault: IRnaPreset[]; presetsCustom: IRnaPreset[]; activeRnaBuilderItem?: RnaBuilderItem | null; activeMonomerKey: string | null; isEditMode: boolean; uniqueNameError: string; invalidPresetError: string; activePresetForContextMenu: IRnaPreset | null; presetPhosphateFilter: PresetPhosphateFilter; } export declare const monomerGroupToPresetGroup: { Bases: string; Sugars: string; Phosphates: string; }; export declare const rnaBuilderSlice: import("@reduxjs/toolkit").Slice) => void; setActivePreset: (state: import("immer").WritableDraft, action: PayloadAction) => void; setSequenceSelection: (state: RootState, action: PayloadAction) => void; setSequenceSelectionName: (state: import("immer").WritableDraft, action: PayloadAction) => void; setIsSequenceFirstsOnlyNucleoelementsSelected: (state: import("immer").WritableDraft, action: PayloadAction) => void; setActivePresetForContextMenu: (state: import("immer").WritableDraft, action: PayloadAction) => void; setPresetPhosphateFilter: (state: import("immer").WritableDraft, action: PayloadAction) => void; setActivePresetName: (state: import("immer").WritableDraft, action: PayloadAction) => void; setActiveRnaBuilderItem: (state: import("immer").WritableDraft, action: PayloadAction) => void; recalculateRnaBuilderValidations: (state: import("immer").WritableDraft, action: PayloadAction<{ rnaPreset: IRnaPreset; isEditMode: boolean; selectedPhosphatePosition?: RnaPhosphatePosition; }>) => void; setActivePresetMonomerGroup: (state: import("immer").WritableDraft, action: PayloadAction<{ groupName: MonomerGroups; groupItem: MonomerItemType; } | null>) => void; savePreset: (state: import("immer").WritableDraft, action: PayloadAction) => void; deletePreset: (state: import("immer").WritableDraft, action: PayloadAction) => void; setIsEditMode: (state: import("immer").WritableDraft, action: PayloadAction) => void; setUniqueNameError: (state: import("immer").WritableDraft, action: PayloadAction) => void; setInvalidPresetError: (state: import("immer").WritableDraft, action: PayloadAction) => void; setDefaultPresets: (state: RootState, action: PayloadAction) => void; setCustomPresets: (state: RootState, action: PayloadAction) => void; setFavoritePresetsFromLocalStorage: (state: RootState) => void; clearFavorites: (state: RootState) => void; setActiveMonomerKey: (state: import("immer").WritableDraft, action: PayloadAction) => void; togglePresetFavorites: (state: import("immer").WritableDraft, action: PayloadAction) => void; }, "rna-builder", "rna-builder", import("@reduxjs/toolkit").SliceSelectors>; export declare const selectRnaBuilderSlice: (state: RootState) => IRnaBuilderState; export declare const selectActiveRnaBuilderItem: (state: RootState) => RnaBuilderItem; export declare const selectGroupItemValidations: (state: RootState) => RnaBuilderItem; export declare const selectActivePreset: (state: RootState) => IRnaPreset; export declare const selectSequenceSelection: (state: RootState) => LabeledNodesWithPositionInSequence[]; export declare const selectSequenceSelectionName: (state: RootState) => string; export declare const selectIsSequenceFirstsOnlyNucleotidesSelected: (state: RootState) => boolean; export declare const selectCurrentMonomerGroup: (preset: IRnaPreset, groupName: MonomerGroups | string) => any; export declare const selectActivePresetMonomerGroup: (state: RootState) => any; export declare const selectIsPresetReadyToSave: (preset: IRnaPreset) => boolean; export declare const selectIsEditMode: (state: RootState) => boolean; export declare const selectPresetFullName: (preset: IRnaPreset) => string; export declare const selectUniqueNameError: (state: RootState) => any; export declare const selectInvalidPresetError: (state: RootState) => any; export declare const selectIsActivePresetNewAndEmpty: (state: RootState) => boolean; export declare const selectActivePresetForContextMenu: (state: RootState) => any; export declare const selectPresetPhosphateFilter: (state: RootState) => PresetPhosphateFilter; export declare const selectPresetsInFavorites: (items: IRnaPreset[]) => IRnaPreset[]; export declare const selectActiveMonomerKey: (state: RootState) => any; export declare const selectAllPresets: ((state: any) => (IRnaPreset & { favorite?: boolean | undefined; })[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: IRnaBuilderState) => (IRnaPreset & { favorite?: boolean | undefined; })[]; memoizedResultFunc: ((resultFuncArgs_0: IRnaBuilderState) => (IRnaPreset & { favorite?: boolean | undefined; })[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => (IRnaPreset & { favorite?: boolean | undefined; })[]; dependencies: [(state: RootState) => IRnaBuilderState]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { argsMemoize: typeof import("reselect").weakMapMemoize; memoize: typeof import("reselect").weakMapMemoize; }; export declare const selectFilteredPresets: ((state: any) => (IRnaPreset & { favorite?: boolean | undefined; })[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: (IRnaPreset & { favorite?: boolean | undefined; })[], resultFuncArgs_1: string, resultFuncArgs_2: Map, resultFuncArgs_3: PresetPhosphateFilter) => (IRnaPreset & { favorite?: boolean | undefined; })[]; memoizedResultFunc: ((resultFuncArgs_0: (IRnaPreset & { favorite?: boolean | undefined; })[], resultFuncArgs_1: string, resultFuncArgs_2: Map, resultFuncArgs_3: PresetPhosphateFilter) => (IRnaPreset & { favorite?: boolean | undefined; })[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => (IRnaPreset & { favorite?: boolean | undefined; })[]; dependencies: [((state: any) => (IRnaPreset & { favorite?: boolean | undefined; })[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: IRnaBuilderState) => (IRnaPreset & { favorite?: boolean | undefined; })[]; memoizedResultFunc: ((resultFuncArgs_0: IRnaBuilderState) => (IRnaPreset & { favorite?: boolean | undefined; })[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => (IRnaPreset & { favorite?: boolean | undefined; })[]; dependencies: [(state: RootState) => IRnaBuilderState]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { argsMemoize: typeof import("reselect").weakMapMemoize; memoize: typeof import("reselect").weakMapMemoize; }, (state: any) => string, ((state: any) => Map) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: any) => Map; memoizedResultFunc: ((resultFuncArgs_0: any) => Map) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Map; dependencies: [(state: any) => any]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { argsMemoize: typeof import("reselect").weakMapMemoize; memoize: typeof import("reselect").weakMapMemoize; }, (state: RootState) => PresetPhosphateFilter]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { argsMemoize: typeof import("reselect").weakMapMemoize; memoize: typeof import("reselect").weakMapMemoize; }; export declare const setActivePreset: import("@reduxjs/toolkit").ActionCreatorWithPayload, setSequenceSelection: import("@reduxjs/toolkit").ActionCreatorWithPayload, setSequenceSelectionName: import("@reduxjs/toolkit").ActionCreatorWithPayload, setIsSequenceFirstsOnlyNucleoelementsSelected: import("@reduxjs/toolkit").ActionCreatorWithPayload, setActivePresetName: import("@reduxjs/toolkit").ActionCreatorWithPayload, setActiveRnaBuilderItem: import("@reduxjs/toolkit").ActionCreatorWithPayload, setActiveMonomerKey: import("@reduxjs/toolkit").ActionCreatorWithPayload, recalculateRnaBuilderValidations: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ rnaPreset: IRnaPreset; isEditMode: boolean; selectedPhosphatePosition?: RnaPhosphatePosition | undefined; }, "rna-builder/recalculateRnaBuilderValidations">, setActivePresetMonomerGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ groupName: MonomerGroups; groupItem: MonomerItemType; } | null, "rna-builder/setActivePresetMonomerGroup">, savePreset: import("@reduxjs/toolkit").ActionCreatorWithPayload, deletePreset: import("@reduxjs/toolkit").ActionCreatorWithPayload, createNewPreset: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"rna-builder/createNewPreset">, setIsEditMode: import("@reduxjs/toolkit").ActionCreatorWithPayload, setUniqueNameError: import("@reduxjs/toolkit").ActionCreatorWithPayload, setInvalidPresetError: import("@reduxjs/toolkit").ActionCreatorWithPayload, setDefaultPresets: import("@reduxjs/toolkit").ActionCreatorWithPayload, setCustomPresets: import("@reduxjs/toolkit").ActionCreatorWithPayload, setActivePresetForContextMenu: import("@reduxjs/toolkit").ActionCreatorWithPayload, setPresetPhosphateFilter: import("@reduxjs/toolkit").ActionCreatorWithPayload, togglePresetFavorites: import("@reduxjs/toolkit").ActionCreatorWithPayload, setFavoritePresetsFromLocalStorage: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"rna-builder/setFavoritePresetsFromLocalStorage">, clearFavorites: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"rna-builder/clearFavorites">; export declare const rnaBuilderReducer: import("redux").Reducer; export {};