import type { GhostEntry } from './utils'; export type JsonValueType = `string` | `number` | `boolean` | `null` | `undefined` | `object` | `array` | `date` | `regexp` | `map` | `set` | `symbol` | `bigint` | `error` | `function` | `circular`; 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; onselect?: (path: string, value: unknown) => void; oncopy?: (path: string, value: string) => void; download_filename?: string; compare_value?: unknown; editable?: boolean; onchange?: (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; search_query: string; search_matches: Set; current_match_path: string | null; focused_path: string | null; prev_values: Map; toggle_collapse: (path: string, is_currently_collapsed: boolean) => void; toggle_collapse_recursive: (path: string, collapse: boolean) => void; expand_all: () => void; collapse_all: () => void; collapse_to_level: (level: number) => void; set_focused: (path: string | null) => void; copy_value: (path: string, value: unknown, event?: CopyEventPosition) => Promise; copy_path: (path: string, event?: CopyEventPosition) => Promise; register_path: (path: string) => void; unregister_path: (path: string) => void; show_context_menu: (event: MouseEvent, path: string, value: unknown, expandable: boolean, is_collapsed: boolean) => void; pinned_paths: Set; toggle_pin: (path: string) => void; selected_paths: Set; toggle_select: (path: string, shift: boolean) => void; copy_selected: () => void; diff_map: Map | null; ghost_map: Map; collapse_children_only: (path: string) => void; onchange?: (path: string, new_value: unknown, old_value: unknown) => void; } export type CopyEventPosition = { clientX: number; clientY: number; }; export declare const JSON_TREE_CONTEXT_KEY: unique symbol; export type DiffStatus = `added` | `removed` | `changed`; export interface DiffEntry { status: DiffStatus; path: string; old_value?: unknown; new_value?: unknown; }