/** * The rendered nodes of a `JsonTree`: the copy control, one disclosure/leaf node, * and a node's paged children. State is read from the tree context; layout uses * the code-block rhythm. */ import type { ReactElement } from 'react'; /** A copy control's resting face; whichever is exposed is also its accessible name. */ export declare const COPY_LABEL = "Copy"; interface CopyButtonProps { readonly value: unknown; /** * The button's resting accessible name. When it flips to its confirmed state the * name flips with it, so a control reading "Copied" is never still named "Copy" * (WCAG 2.5.3). A `text` button spells the name in its own words; an `icon` button * takes it from here. */ readonly label: string; readonly variant: 'text' | 'icon'; } /** * A copy control that writes its value to the clipboard and shows a transient * confirmed state. The write itself lives on the tree context, so a refusal is * reported ONCE — as the tree's shared alert — rather than inline at each of the * many buttons a large payload carries. */ export declare function CopyButton({ value, label, variant }: CopyButtonProps): ReactElement; interface NodeProps { readonly name?: string; readonly value: unknown; readonly depth: number; readonly path: string; } export declare function JsonNode({ name, value, depth, path }: NodeProps): ReactElement; export {}; //# sourceMappingURL=json-tree-nodes.d.ts.map