import type { GhostEntry } from './utils'; export type JsonValueType = `string` | `number` | `boolean` | `null` | `undefined` | `object` | `array` | `date` | `regexp` | `map` | `set` | `symbol` | `bigint` | `error` | `function`; export interface JsonTreeProps { value: unknown; root_label?: string; default_fold_level?: number; auto_fold_arrays?: number; auto_fold_objects?: number; collapsed_paths?: Set; show_header?: boolean; show_data_types?: boolean; show_array_indices?: boolean; sort_keys?: boolean; max_string_length?: number; highlight_changes?: boolean; on_select?: (path: string, value: unknown) => void; on_copy?: (path: string, value: string) => void; download_filename?: string; compare_value?: unknown; editable?: boolean; on_change?: (path: string, new_value: unknown, old_value: unknown) => void; } export interface JsonTreeContext { settings: { default_fold_level: number; auto_fold_arrays: number; auto_fold_objects: number; show_data_types: boolean; show_array_indices: boolean; sort_keys: boolean; max_string_length: number; highlight_changes: boolean; editable: boolean; }; collapsed: Set; force_expanded: Set; current_match_path: string | null; focused_path: string | null; selected_paths: Set; diff_map: Map | null; ghost_map: Map; prev_values: Map; toggle_collapse: (path: string, is_currently_collapsed: boolean) => void; toggle_collapse_recursive: (path: string, collapse: boolean) => void; collapse_children_only: (path: string) => void; set_focused: (path: string | null) => void; toggle_select: (path: string, shift: boolean) => void; copy_value: (path: string, value: unknown, event?: CopyEventPosition) => Promise; copy_path: (path: string, event?: CopyEventPosition) => Promise; show_context_menu: (event: MouseEvent, path: string, value: unknown, expandable: boolean, is_collapsed: boolean) => void; on_change?: (path: string, new_value: unknown, old_value: unknown) => void; } export type CopyEventPosition = { clientX: number; clientY: number; }; export declare const get_json_tree_context: () => JsonTreeContext, set_json_tree_context: (context: JsonTreeContext) => JsonTreeContext; type DiffStatus = `added` | `removed` | `changed`; export interface DiffEntry { status: DiffStatus; path: string; old_value?: unknown; new_value?: unknown; } export {};