import { type ReactNode } from 'react'; import { EdgePdfViewer } from '@edgepdf/viewer-js'; import type { Marker, ZoomState } from '@edgepdf/types'; /** * Viewer context value containing viewer instance and state */ export interface ViewerContextValue { /** Viewer instance */ viewer: EdgePdfViewer | null; /** Whether viewer is initialized */ isInitialized: boolean; /** Current markers */ markers: Marker[]; /** Current zoom state */ zoomState: ZoomState | null; /** Whether viewer is in fullscreen mode */ isFullscreen: boolean; /** Toggle fullscreen mode (set by pdf-viewer component) */ toggleFullscreen?: () => void; /** Internal: Function to update context value (used by EdgePDFViewer) */ setContextValue: (updates: Partial>) => void; } /** * Props for ViewerProvider */ export interface ViewerProviderProps { /** Children components */ children: ReactNode; } /** * ViewerProvider - Provides viewer context to child components * * Provides an empty context that can be updated by EdgePDFViewer. * This allows hooks to be used anywhere within the provider tree. * * @example * ```tsx * * * * ``` */ export declare function ViewerProvider({ children }: ViewerProviderProps): React.JSX.Element; /** * Hook to access viewer context * * @throws {Error} If used outside ViewerProvider * @returns Viewer context value * * @example * ```tsx * function MyComponent() { * const { viewer, isInitialized } = useViewerContext(); * // Use viewer... * } * ``` */ export declare function useViewerContext(): ViewerContextValue; //# sourceMappingURL=viewer-context.d.ts.map