import { ComputedRef, MaybeRefOrGetter } from 'vue'; import { IJsonNode, JsonViewerVisibleNode } from '@wolf-tui/shared'; export interface IUseJsonViewerStateProps { /** * JSON data to display. Accepts plain value, ref, or getter for reactivity. */ data: MaybeRefOrGetter; /** * Default depth to expand on mount. * * @default 1 */ defaultExpandDepth?: number; /** * Number of visible rows. * * @default 20 */ visibleNodeCount?: number; /** * Maximum string length before truncation. * * @default 120 */ maxStringLength?: number; /** * Sort object keys alphabetically. * * @default false */ sortKeys?: boolean; /** * Maximum nesting depth. * * @default 100 */ maxDepth?: number; /** * Indent width (spaces per depth level). * * @default 2 */ indentWidth?: number; /** * Callback when focused node changes. */ onFocusChange?: (nodeId: string | undefined) => void; } export interface IJsonViewerState { data: unknown; nodes: ComputedRef; focusedIndex: ComputedRef; expandedIds: ComputedRef>; visibleNodes: ComputedRef; hasScrollUp: ComputedRef; hasScrollDown: ComputedRef; indentWidth: number; focusNext: () => void; focusPrevious: () => void; focusFirst: () => void; focusLast: () => void; expand: () => void; collapse: () => void; toggleExpand: () => void; expandAll: () => void; collapseAll: () => void; moveToFirstChild: () => void; } export declare const useJsonViewerState: ({ data: dataProp, defaultExpandDepth, visibleNodeCount, maxStringLength, sortKeys, maxDepth, indentWidth, onFocusChange, }: IUseJsonViewerStateProps) => IJsonViewerState; //# sourceMappingURL=use-json-viewer-state.d.ts.map