/** * Selection Context * Manages entity and body part selection state * Extracted from EditorContext for better separation of concerns */ import React from 'react'; import { ECSContext } from '../../ecs'; export interface SelectionState { /** Currently selected entity IDs (supports multi-select) */ selectedEntities: number[]; /** Currently selected body part path within the primary entity (if any) */ selectedPartPath: number[] | null; } export interface SelectionContextValue { selectedEntities: number[]; /** Selected body part path, or null if no part is selected */ selectedPartPath: number[] | null; selectEntity: (eid: number | null, multi?: boolean) => void; selectBodyPart: (eid: number, partPath: number[]) => void; selectMultiple: (eids: number[]) => void; clearSelection: () => void; } export interface SelectionProviderProps { children: React.ReactNode; ctx: ECSContext; } /** * SelectionProvider - Manages entity and body part selection */ export declare function SelectionProvider({ children, ctx }: SelectionProviderProps): import("react/jsx-runtime").JSX.Element; /** * Hook to access selection context */ export declare function useSelection(): SelectionContextValue; /** * Hook to get the first selected entity */ export declare function useSelectedEntity(): number | null; /** * Hook to get all selected entities */ export declare function useSelectedEntities(): number[]; /** * Hook to get the selected body part path */ export declare function useSelectedPartPath(): number[] | null; //# sourceMappingURL=SelectionContext.d.ts.map