/** * Galaxy Store * * Zustand store for galaxy visualization state management. * Handles selection, camera, filters, and display settings. */ import type { GalaxyData, SelectionState, CameraState, FilterState, DisplaySettings, ViewMode, Vector3D, GalaxyEvent } from '../types/index.js'; export interface GalaxyStoreState { galaxyData: GalaxyData | null; isLoading: boolean; error: string | null; selection: SelectionState; camera: CameraState; viewMode: ViewMode; filters: FilterState; display: DisplaySettings; recentEvents: GalaxyEvent[]; isLiveMode: boolean; isPanelOpen: boolean; activePanel: 'details' | 'security' | 'coverage' | 'settings' | null; searchQuery: string; searchResults: string[]; } export interface GalaxyStoreActions { setGalaxyData: (data: GalaxyData) => void; setLoading: (loading: boolean) => void; setError: (error: string | null) => void; selectTable: (id: string | null) => void; selectField: (id: string | null) => void; selectEntryPoint: (id: string | null) => void; selectPath: (id: string | null) => void; setHovered: (id: string | null, type: SelectionState['hoveredType']) => void; clearSelection: () => void; setCameraPosition: (position: Vector3D) => void; setCameraTarget: (target: Vector3D) => void; setZoom: (zoom: number) => void; resetCamera: () => void; focusOnNode: (id: string) => void; setViewMode: (mode: ViewMode) => void; setFilters: (filters: Partial) => void; setDisplay: (settings: Partial) => void; resetFilters: () => void; addEvent: (event: GalaxyEvent) => void; clearEvents: () => void; setLiveMode: (enabled: boolean) => void; togglePanel: (panel: GalaxyStoreState['activePanel']) => void; closePanel: () => void; setSearchQuery: (query: string) => void; setSearchResults: (results: string[]) => void; } export type GalaxyStore = GalaxyStoreState & GalaxyStoreActions; export declare const useGalaxyStore: import("zustand").UseBoundStore, "subscribe"> & { subscribe: { (listener: (selectedState: GalaxyStore, previousSelectedState: GalaxyStore) => void): () => void; (selector: (state: GalaxyStore) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: { equalityFn?: ((a: U, b: U) => boolean) | undefined; fireImmediately?: boolean; } | undefined): () => void; }; }>; /** * Get selected table data */ export declare const useSelectedTable: () => import("../types/index.js").TableNode | null; /** * Get selected entry point data */ export declare const useSelectedEntryPoint: () => import("../types/index.js").EntryPointNode | null; /** * Get paths for selected table */ export declare const useSelectedTablePaths: () => import("../types/index.js").DataPath[]; /** * Get filtered tables based on current filters */ export declare const useFilteredTables: () => readonly import("../types/index.js").TableNode[]; /** * Get filtered paths based on current filters */ export declare const useFilteredPaths: () => readonly import("../types/index.js").DataPath[]; /** * Get filtered entry points */ export declare const useFilteredEntryPoints: () => readonly import("../types/index.js").EntryPointNode[]; //# sourceMappingURL=galaxy-store.d.ts.map