import { o as SemanticDOMConfig, l as SemanticDocument, d as SemanticNode, m as SemanticQuery, c as SemanticId, n as NavigationOptions, i as SSGNode, b as StateType } from './types-BNownkHv.js'; import { S as SemanticDOM } from './semantic-dom-BRy802tA.js'; import { ReactNode } from 'react'; /** * SemanticDOM React Context * Provides global context for SemanticDOM configuration and state */ /** * Context value type */ interface SemanticDOMContextValue { sdom: SemanticDOM; config: SemanticDOMConfig; document: SemanticDocument | null; setDocument: (doc: SemanticDocument | null) => void; } /** * Provider props */ interface SemanticDOMProviderProps { children: ReactNode; config?: SemanticDOMConfig; document?: SemanticDocument | null; onDocumentChange?: (doc: SemanticDocument | null) => void; } /** * SemanticDOM Provider component */ declare function SemanticDOMProvider({ children, config, document, onDocumentChange, }: SemanticDOMProviderProps): JSX.Element; /** * Hook to access SemanticDOM context */ declare function useSemanticDOMContext(): SemanticDOMContextValue; /** * SemanticDOM React Hooks * Provides React integration for SemanticDOM and Semantic State Graph * * @packageDocumentation */ /** * Hook to create and use a SemanticDOM instance */ declare function useSemanticDOM(config?: SemanticDOMConfig): { sdom: SemanticDOM; parse: (element: Element, url?: string, title?: string) => SemanticDocument; query: (root: SemanticNode, query: SemanticQuery) => SemanticNode[]; getById: (document: SemanticDocument, id: SemanticId) => SemanticNode | undefined; navigate: (document: SemanticDocument, currentId: SemanticId, options: NavigationOptions) => SemanticNode | null; }; /** * Hook to parse a DOM element ref into a SemanticDocument */ declare function useSemanticDocument(ref: React.RefObject, config?: SemanticDOMConfig, deps?: unknown[]): SemanticDocument | null; /** * Hook to query semantic nodes reactively */ declare function useSemanticQuery(document: SemanticDocument | null, query: SemanticQuery, deps?: unknown[]): SemanticNode[]; /** * Hook to get a specific node by ID with O(1) lookup */ declare function useSemanticNode(document: SemanticDocument | null, id: SemanticId | undefined): SemanticNode | null; /** * Hook for deterministic keyboard navigation */ declare function useSemanticNavigation(document: SemanticDocument | null, options?: Partial): { currentId: SemanticId | null; setCurrentId: (id: SemanticId | null) => void; currentNode: SemanticNode | null; goNext: () => void; goPrevious: () => void; goFirst: () => void; goLast: () => void; goParent: () => void; goFirstChild: () => void; goNextSibling: () => void; goPreviousSibling: () => void; }; /** * Hook for SSG state management */ declare function useSSG(id: SemanticId, ssgNode?: SSGNode): { state: StateType; setState: (state: StateType) => void; transition: (trigger: string) => boolean; history: Array<{ from: StateType; to: StateType; timestamp: number; }>; canTransition: (trigger: string) => boolean; }; /** * Hook to observe document state and re-parse on changes */ declare function useSemanticObserver(ref: React.RefObject, config?: SemanticDOMConfig): SemanticDocument | null; /** * Hook to get landmarks from a semantic document */ declare function useLandmarks(document: SemanticDocument | null): SemanticNode[]; /** * Hook to get interactable elements from a semantic document */ declare function useInteractables(document: SemanticDocument | null): SemanticNode[]; /** * Hook to check agent certification level */ declare function useCertification(document: SemanticDocument | null): { level: string; score: number; passed: number; failed: number; isAgentReady: boolean; }; export { SemanticDOMProvider, useCertification, useInteractables, useLandmarks, useSSG, useSemanticDOM, useSemanticDOMContext, useSemanticDocument, useSemanticNavigation, useSemanticNode, useSemanticObserver, useSemanticQuery };