import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "@excalidraw/excalidraw/types"; import type { Mutable } from "@excalidraw/common/utility-types"; import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./types"; export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted[]) => Pick; export declare const selectGroupsForSelectedElements: { (appState: Pick, elements: readonly NonDeletedExcalidrawElement[], prevAppState: InteractiveCanvasAppState, app: AppClassProperties | null): Mutable>; clearCache(): void; }; /** * If the element's group is selected, don't render an individual * selection border around it. */ export declare const isSelectedViaGroup: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => boolean; export declare const getSelectedGroupForElement: (appState: Pick, element: ExcalidrawElement) => string | undefined; export declare const getSelectedGroupIds: (appState: InteractiveCanvasAppState) => GroupId[]; export declare const selectGroupsFromGivenElements: (elements: readonly NonDeleted[], appState: InteractiveCanvasAppState) => { [groupId: string]: boolean; }; export declare const editGroupForSelectedElement: (appState: AppState, element: NonDeleted) => AppState; export declare const isElementInGroup: (element: ExcalidrawElement, groupId: string) => boolean; export declare const getElementsInGroup: (elements: ElementsMapOrArray, groupId: string) => ExcalidrawElement[]; export declare const getSelectedGroupIdForElement: (element: ExcalidrawElement, selectedGroupIds: { [groupId: string]: boolean; }) => string | undefined; export declare const addToGroup: (prevGroupIds: ExcalidrawElement["groupIds"], newGroupId: GroupId, editingGroupId: AppState["editingGroupId"]) => string[]; export declare const removeFromSelectedGroups: (groupIds: ExcalidrawElement["groupIds"], selectedGroupIds: { [groupId: string]: boolean; }) => string[]; export declare const getMaximumGroups: (elements: ExcalidrawElement[], elementsMap: ElementsMap) => ExcalidrawElement[][]; export declare const getNonDeletedGroupIds: (elements: ElementsMap) => Set; export declare const elementsAreInSameGroup: (elements: readonly ExcalidrawElement[]) => boolean; export declare const isInGroup: (element: NonDeletedExcalidrawElement) => boolean; export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[]; export declare const getSelectedElementsByGroup: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, appState: Readonly) => ExcalidrawElement[][];