import * as React from 'react'; import { AriaLabels, NodeExpandingEvent } from '.'; export interface StyleProps { container: string; basicChildStyle: string; label: string; clickableLabel: string; nullValue: string; undefinedValue: string; numberValue: string; stringValue: string; booleanValue: string; otherValue: string; punctuation: string; expandIcon: string; collapseIcon: string; collapsedContent: string; childFieldsContainer: string; noQuotesForStringValues?: boolean; quotesForFieldNames?: boolean; ariaLables: AriaLabels; stringifyStringValues: boolean; } interface CommonRenderProps { lastElement: boolean; /** There should only be one node with `level==0`. */ level: number; style: StyleProps; shouldExpandNode: (level: number, value: any, field?: string) => boolean; clickToExpandNode: boolean; outerRef: React.RefObject; beforeExpandChange?: (event: NodeExpandingEvent) => boolean; } export interface JsonRenderProps extends CommonRenderProps { field?: string; value: T; } export interface ExpandableRenderProps extends CommonRenderProps { field: string | undefined; value: Array | object; data: Array<[string | undefined, any]>; openBracket: string; closeBracket: string; } export interface EmptyRenderProps { field: string | undefined; openBracket: string; closeBracket: string; lastElement: boolean; style: StyleProps; } export default function DataRender(props: JsonRenderProps): React.JSX.Element; export {};