import type { HTMLAttributes, ReactNode } from 'react'; export type JsonViewerProps = JsonViewer & JsonViewerEvents & { index: number; onClose: () => void; isWindowMinimized?: boolean; windowOrder?: number; }; export interface AnimatedButtonProps extends HTMLAttributes { label?: ReactNode; icon?: string; disableAnimation?: boolean; } export type JsonViewer = { json: Record; requestJson?: Record; }; export type JsonViewerEvents = { onJsonRequestOpen?: () => void; onJsonSearch?: () => void; onJsonCopy?: () => void; onJsonIdCopy?: () => void; onJsonNodesMinimize?: () => void; onJsonNodesMaximize?: () => void; }; export type JsonViewerContext = { jsonViewerList: JsonViewer[]; handleJsonViewerDialogOpen: (jsonViewer: JsonViewer) => void; handleWindowMinimize: (value: boolean) => void; handleWindowOrder: (value: number) => void; /** Registers the active consumer's analytics handlers with the provider. */ registerJsonViewerEvents: (events: JsonViewerEvents) => void; };