/**************************************************************************** * 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 { type AtomAttributes, type AtomQueryProperties } from '../../../domain/entities/atom'; import { Bond } from '../../../domain/entities/bond'; import type { SGroup } from '../../../domain/entities/sgroup'; import type { Struct } from '../../../domain/entities/struct'; import { Vec2 } from '../../../domain/entities/vec2'; import type { ReStruct } from '../../render'; import type { EditorSelection } from '../editor.types'; export type AtomType = 'single' | 'list' | 'pseudo'; export type AtomAttributeName = keyof AtomAttributes; export type AtomQueryPropertiesName = keyof AtomQueryProperties; export type AtomAllAttributeName = AtomAttributeName | AtomQueryPropertiesName; export type AtomAllAttributeValue = AtomAttributes[AtomAttributeName] | AtomQueryProperties[AtomQueryPropertiesName]; export declare function atomGetAttr(restruct: ReStruct, aid: number, name: AtomAttributeName): string | number | boolean | import("../../..").AtomList | Vec2 | AtomQueryProperties | null | undefined; export declare function atomGetDegree(restruct: any, aid: any): any; export declare function atomGetSGroups(restruct: any, atomId: number): number[]; export declare function atomGetPos(restruct: any, id: any): any; export declare function findStereoAtoms(struct: Struct, atomIds: number[] | undefined): number[]; export declare function structSelection(struct: any): EditorSelection; export declare function getSelectionFromStruct(struct: Struct): EditorSelection; export declare function formatSelection(selection: any): any; export declare function atomForNewBond(restruct: any, id: any, bond?: any): { atom: any; pos: Vec2; }; export declare function getRelSGroupsBySelection(struct: Struct, selectedAtoms: number[]): Set; export declare function isAttachmentBond({ begin, end }: Bond, selection: EditorSelection): boolean;