import { IViewport } from '../lib/tree-utils'; export type JsonValueType = 'string' | 'number' | 'boolean' | 'null' | 'undefined' | 'object' | 'array' | 'date' | 'regexp' | 'bigint' | 'symbol' | 'function' | 'map' | 'set' | 'circular' | 'max-depth'; export type IJsonNode = { id: string; key: string; valueType: JsonValueType; displayValue: string; depth: number; hasChildren: boolean; childCount: number; isExpandable: boolean; isClosingBracket: boolean; bracketChar: string; }; export type IJsonFlattenOptions = { maxDepth: number; maxStringLength: number; sortKeys: boolean; }; export type JsonViewerState = { data: unknown; flattenOptions: IJsonFlattenOptions; nodes: IJsonNode[]; allNodes: IJsonNode[]; expandedIds: ReadonlySet; focusedIndex: number; visibleNodeCount: number; viewport: IViewport; }; export type JsonViewerAction = { type: 'focus-next'; } | { type: 'focus-previous'; } | { type: 'focus-first'; } | { type: 'focus-last'; } | { type: 'expand'; } | { type: 'collapse'; } | { type: 'toggle-expand'; } | { type: 'expand-all'; } | { type: 'collapse-all'; } | { type: 'move-to-first-child'; } | { type: 'reset'; state: JsonViewerState; }; export declare function jsonViewerReducer(state: JsonViewerState, action: JsonViewerAction): JsonViewerState; export declare function createDefaultJsonViewerState(options: { data: unknown; defaultExpandDepth?: number; visibleNodeCount?: number; maxStringLength?: number; sortKeys?: boolean; maxDepth?: number; }): JsonViewerState; /** * Resolve the actual value at a JSONPath from the root data. * Path format: "$", "$.key", "$[0]", "$[\"special.key\"]" */ export declare function resolvePathValue(data: unknown, path: string): unknown; //# sourceMappingURL=json-viewer.d.ts.map